- avoid run task more than once.

This commit is contained in:
gazebo
2018-10-26 17:34:40 +08:00
parent 9a8bcd506b
commit f12cfafe23

View File

@@ -221,26 +221,28 @@ func (t *BaseTask) MarshalJSON() ([]byte, error) {
}
func (t *BaseTask) run(taskHandler func()) {
utils.CallFuncAsync(func() {
defer func() {
if r := recover(); r != nil {
globals.SugarLogger.Errorf("panic in BaseTask.run task:%s, task detail:%s", t.Name, utils.Format4Output(t, false))
}
}()
if t.GetStatus() == TaskStatusBegin {
utils.CallFuncAsync(func() {
defer func() {
if r := recover(); r != nil {
globals.SugarLogger.Errorf("panic in BaseTask.run task:%s, task detail:%s", t.Name, utils.Format4Output(t, false))
}
}()
taskHandler()
select {
case <-t.quitChan:
default:
close(t.quitChan)
}
for _, subTask := range t.Children {
if _, err := subTask.GetResult(0); err != nil {
globals.SugarLogger.Infof("BaseTask run, failed with error:%v", err)
taskHandler()
select {
case <-t.quitChan:
default:
close(t.quitChan)
}
}
close(t.finishChan)
})
for _, subTask := range t.Children {
if _, err := subTask.GetResult(0); err != nil {
globals.SugarLogger.Infof("BaseTask run, failed with error:%v", err)
}
}
close(t.finishChan)
})
}
}
func (t *BaseTask) finishedOneJob(itemCount int, err error) {