- use utils.CallFuncAsync when possible.
This commit is contained in:
@@ -116,7 +116,7 @@ func (task *ParallelTask) Run() {
|
||||
task.run(func() {
|
||||
globals.SugarLogger.Debugf("ParallelTask.Run %s", task.Name)
|
||||
for i := 0; i < task.ParallelCount; i++ {
|
||||
go func() {
|
||||
utils.CallFuncAsync(func() {
|
||||
var chanRetVal interface{}
|
||||
retVal := make([]interface{}, 0)
|
||||
for {
|
||||
@@ -152,7 +152,7 @@ func (task *ParallelTask) Run() {
|
||||
task.subFinishChan <- chanRetVal
|
||||
}
|
||||
task.locker.RUnlock()
|
||||
}()
|
||||
})
|
||||
}
|
||||
for _, job := range task.jobList {
|
||||
task.taskChan <- job
|
||||
|
||||
@@ -209,14 +209,20 @@ func (t *BaseTask) MarshalJSON() ([]byte, error) {
|
||||
}
|
||||
|
||||
func (t *BaseTask) run(taskHandler func()) {
|
||||
go 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))
|
||||
}
|
||||
}()
|
||||
|
||||
taskHandler()
|
||||
for _, subTask := range t.Children {
|
||||
if _, err := subTask.GetResult(0); err != nil {
|
||||
globals.SugarLogger.Warnf("BaseTask run, failed with error:%v", err)
|
||||
}
|
||||
}
|
||||
}()
|
||||
})
|
||||
}
|
||||
|
||||
func (t *BaseTask) finishedOneJob(itemCount int, err error) {
|
||||
|
||||
Reference in New Issue
Block a user