- avoid run task more than once.
This commit is contained in:
@@ -221,26 +221,28 @@ func (t *BaseTask) MarshalJSON() ([]byte, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (t *BaseTask) run(taskHandler func()) {
|
func (t *BaseTask) run(taskHandler func()) {
|
||||||
utils.CallFuncAsync(func() {
|
if t.GetStatus() == TaskStatusBegin {
|
||||||
defer func() {
|
utils.CallFuncAsync(func() {
|
||||||
if r := recover(); r != nil {
|
defer func() {
|
||||||
globals.SugarLogger.Errorf("panic in BaseTask.run task:%s, task detail:%s", t.Name, utils.Format4Output(t, false))
|
if r := recover(); r != nil {
|
||||||
}
|
globals.SugarLogger.Errorf("panic in BaseTask.run task:%s, task detail:%s", t.Name, utils.Format4Output(t, false))
|
||||||
}()
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
taskHandler()
|
taskHandler()
|
||||||
select {
|
select {
|
||||||
case <-t.quitChan:
|
case <-t.quitChan:
|
||||||
default:
|
default:
|
||||||
close(t.quitChan)
|
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)
|
|
||||||
}
|
}
|
||||||
}
|
for _, subTask := range t.Children {
|
||||||
close(t.finishChan)
|
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) {
|
func (t *BaseTask) finishedOneJob(itemCount int, err error) {
|
||||||
|
|||||||
Reference in New Issue
Block a user