1
0
mirror of https://github.com/newnius/YAO-scheduler.git synced 2025-12-15 16:16: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() { func (pool *ResourcePool) checkDeadNodes() {
for { for {
pool.heartBeatMu.Lock() pool.heartBeatMu.Lock()
var nodesToDel []string
for k, v := range pool.heartBeat { for k, v := range pool.heartBeat {
if v.Add(time.Second * 30).Before(time.Now()) { if v.Add(time.Second * 30).Before(time.Now()) {
poolID := pool.getNodePool(k) segID := pool.getNodePool(k)
seg := &pool.pools[poolID] seg := &pool.pools[segID]
if seg.Nodes == nil { if seg.Nodes == nil {
seg = seg.Next seg = seg.Next
} }
@@ -113,9 +114,18 @@ func (pool *ResourcePool) checkDeadNodes() {
pool.versionsMu.Lock() pool.versionsMu.Lock()
delete(pool.versions, k) delete(pool.versions, k)
pool.versionsMu.Unlock() pool.versionsMu.Unlock()
nodesToDel = append(nodesToDel, k)
log.Info(" node ", k, " is offline") 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() pool.heartBeatMu.Unlock()
time.Sleep(time.Second * 10) time.Sleep(time.Second * 10)
} }