- 整理tasksch
This commit is contained in:
@@ -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 // 如果不释放,任务被管理的话,会导致内存不能释放
|
||||||
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
Reference in New Issue
Block a user