增量更新节点状态
This commit is contained in:
@@ -190,12 +190,23 @@ func startWeb(ctx context.Context) error {
|
||||
|
||||
func startTask(ctx context.Context) error {
|
||||
|
||||
// 维护一个修改表,每次提交后清空,每个节点的修改在同一阶段内只有一次
|
||||
var lock = sync.Mutex{}
|
||||
var updates = make([]*core.Edge, 0)
|
||||
var updatesMap = make(map[int32]*core.Edge)
|
||||
go func() {
|
||||
for data := range app.EdgeUpdates {
|
||||
lock.Lock()
|
||||
updates = append(updates, data)
|
||||
if update, ok := updatesMap[data.Id]; ok {
|
||||
if data.Status != update.Status {
|
||||
// 如果状态发生变化,则更新
|
||||
updatesMap[data.Id] = data
|
||||
updates = append(updates, data)
|
||||
}
|
||||
} else {
|
||||
updatesMap[data.Id] = data
|
||||
updates = append(updates, data)
|
||||
}
|
||||
lock.Unlock()
|
||||
}
|
||||
}()
|
||||
|
||||
Reference in New Issue
Block a user