1
0
mirror of https://github.com/newnius/YAO-scheduler.git synced 2025-12-12 23:36:44 +00:00
This commit is contained in:
2020-05-04 18:19:39 +08:00
parent 45685fef79
commit 4668cf8b4f

View File

@@ -93,10 +93,11 @@ func (pool *ResourcePool) start() {
func (pool *ResourcePool) checkDeadNodes() {
for {
pool.heartBeatMu.Lock()
var nodesToDel []string
for k, v := range pool.heartBeat {
if v.Add(time.Second * 30).Before(time.Now()) {
poolID := pool.getNodePool(k)
seg := &pool.pools[poolID]
segID := pool.getNodePool(k)
seg := &pool.pools[segID]
if seg.Nodes == nil {
seg = seg.Next
}
@@ -113,9 +114,18 @@ func (pool *ResourcePool) checkDeadNodes() {
pool.versionsMu.Lock()
delete(pool.versions, k)
pool.versionsMu.Unlock()
nodesToDel = append(nodesToDel, k)
log.Info(" node ", k, " is offline")
}
}
for _, v := range nodesToDel {
segID := pool.getNodePool(v)
seg := &pool.pools[segID]
if seg.Nodes == nil {
seg = seg.Next
}
delete(seg.Nodes, v)
}
pool.heartBeatMu.Unlock()
time.Sleep(time.Second * 10)
}