- 整理tasksch

This commit is contained in:
gazebo
2019-08-01 20:07:39 +08:00
parent 76d1817348
commit 402e60ab50
3 changed files with 21 additions and 19 deletions

View File

@@ -118,19 +118,18 @@ func (task *ParallelTask) Run() {
})
// globals.SugarLogger.Debugf("ParallelTask.Run %s, after call worker result:%v, err:%v", task.Name, result, err)
task.finishedOneJob(len(job), err)
if err == nil {
if result != nil {
retVal = append(retVal, utils.Interface2Slice(result)...)
}
} else {
globals.SugarLogger.Infof("ParallelTask.Run %s, subtask(job:%s, params:%s) result:%v, failed with error:%v", task.Name, utils.Format4Output(job, true), utils.Format4Output(task.params, true), result, err)
task.locker.Lock()
task.batchErrList = append(task.batchErrList, err)
task.locker.Unlock()
if !task.IsContinueWhenError { // 出错
if err != nil { // 出错
// globals.SugarLogger.Infof("ParallelTask.Run %s, subtask(job:%s, params:%s) result:%v, failed with error:%v", task.Name, utils.Format4Output(job, true), utils.Format4Output(task.params, true), result, err)
if task.IsContinueWhenError {
task.locker.Lock()
task.batchErrList = append(task.batchErrList, err)
task.locker.Unlock()
} else {
chanRetVal = err
goto end
}
} else if result != nil {
retVal = append(retVal, utils.Interface2Slice(result)...)
}
}
}
@@ -165,6 +164,7 @@ func (task *ParallelTask) Run() {
taskResult = append(taskResult, resultList...)
}
}
task.locker.Lock()
task.Result = taskResult
task.mainErr = taskErr
@@ -172,7 +172,6 @@ func (task *ParallelTask) Run() {
close(task.subFinishChan)
task.jobList = nil // 如果不释放,任务被管理的话,会导致内存不能释放
})
}

View File

@@ -41,12 +41,14 @@ func (task *SeqTask) Run() {
return task.worker(task, i, task.params...)
})
task.finishedOneJob(1, err)
if taskErr = err; taskErr != nil {
task.locker.Lock()
task.batchErrList = append(task.batchErrList, err)
task.locker.Unlock()
globals.SugarLogger.Infof("SeqTask.Run %s step:%d failed with error:%v", task.Name, i, err)
if !task.IsContinueWhenError {
if err != nil {
// globals.SugarLogger.Infof("SeqTask.Run %s step:%d failed with error:%v", task.Name, i, err)
if task.IsContinueWhenError {
task.locker.Lock()
task.batchErrList = append(task.batchErrList, err)
task.locker.Unlock()
} else {
taskErr = err
break
}
} else if result != nil {
@@ -54,6 +56,7 @@ func (task *SeqTask) Run() {
}
}
EndFor:
task.locker.Lock()
task.Result = taskResult
task.mainErr = taskErr

View File

@@ -311,7 +311,7 @@ func (t *BaseTask) GetLeafResult() (finishedItemCount, failedItemCount int) {
}
func (t *BaseTask) Error() (errMsg string) {
if t.mainErr == nil && len(t.batchErrList) == 0 {
if t.GetErr() == nil {
return ""
}
t.locker.RLock()
@@ -397,7 +397,7 @@ func (t *BaseTask) run(taskHandler func()) {
task.locker.Unlock()
task.Error()
globals.SugarLogger.Debugf("Task:%s, result:%v, err:%v", task.Name, task.Result, task.mainErr)
globals.SugarLogger.Debugf("Task:%s, mainErr:%v, batchErrList:%v", task.Name, task.mainErr, task.batchErrList)
select {
case <-t.quitChan: