task manager graceful shutdown support

This commit is contained in:
guoxingyong 2021-05-26 10:34:11 +08:00
parent 93b73ddb34
commit 8a193c5004

View File

@ -560,22 +560,22 @@ func (m *taskManager) runNextTasks(sortList *MapSorter, effective time.Time) {
if duration := e.GetTimeout(ctx); duration != 0 { if duration := e.GetTimeout(ctx); duration != 0 {
go func(e Tasker) { go func(e Tasker) {
m.wait.Add(1) m.wait.Add(1)
defer m.wait.Done()
ctx, cancelFunc := context.WithTimeout(ctx, duration) ctx, cancelFunc := context.WithTimeout(ctx, duration)
defer cancelFunc() defer cancelFunc()
err := e.Run(ctx) err := e.Run(ctx)
if err != nil { if err != nil {
log.Printf("tasker.run err: %s\n", err.Error()) log.Printf("tasker.run err: %s\n", err.Error())
} }
m.wait.Done()
}(e) }(e)
} else { } else {
go func(e Tasker) { go func(e Tasker) {
m.wait.Add(1) m.wait.Add(1)
defer m.wait.Done()
err := e.Run(ctx) err := e.Run(ctx)
if err != nil { if err != nil {
log.Printf("tasker.run err: %s\n", err.Error()) log.Printf("tasker.run err: %s\n", err.Error())
} }
m.wait.Done()
}(e) }(e)
} }