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

View File

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

View File

@@ -311,7 +311,7 @@ func (t *BaseTask) GetLeafResult() (finishedItemCount, failedItemCount int) {
} }
func (t *BaseTask) Error() (errMsg string) { func (t *BaseTask) Error() (errMsg string) {
if t.mainErr == nil && len(t.batchErrList) == 0 { if t.GetErr() == nil {
return "" return ""
} }
t.locker.RLock() t.locker.RLock()
@@ -397,7 +397,7 @@ func (t *BaseTask) run(taskHandler func()) {
task.locker.Unlock() task.locker.Unlock()
task.Error() 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 { select {
case <-t.quitChan: case <-t.quitChan: