- tasksch.NewParallelTask2,支持部分失败时得到准备的成功,失败个数信息
This commit is contained in:
@@ -434,7 +434,8 @@ func (t *BaseTask) run(taskHandler func()) {
|
||||
}
|
||||
}
|
||||
|
||||
func (t *BaseTask) finishedOneJob(itemCount int, err error) {
|
||||
// successCount表示在返回错误的情况下,(部分)成功的个数,如果没有返回错误,则successCount无意义
|
||||
func (t *BaseTask) finishedOneJob(itemCount, successCount int, err error) {
|
||||
t.locker.Lock()
|
||||
defer t.locker.Unlock()
|
||||
|
||||
@@ -443,7 +444,8 @@ func (t *BaseTask) finishedOneJob(itemCount int, err error) {
|
||||
t.FinishedItemCount += itemCount
|
||||
t.FinishedJobCount++
|
||||
} else {
|
||||
t.FailedItemCount += itemCount
|
||||
t.FinishedItemCount += successCount
|
||||
t.FailedItemCount += itemCount - successCount
|
||||
t.FailedJobCount++
|
||||
}
|
||||
}
|
||||
@@ -473,6 +475,15 @@ func (task *BaseTask) callWorker(worker func() (retVal interface{}, err error))
|
||||
err = fmt.Errorf("panic, r:%v", r)
|
||||
}
|
||||
}()
|
||||
retVal, err = worker()
|
||||
return retVal, err
|
||||
return worker()
|
||||
}
|
||||
|
||||
func (task *BaseTask) callWorker2(worker func() (retVal interface{}, successCount int, err error)) (retVal interface{}, successCount int, err error) {
|
||||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
globals.SugarLogger.Errorf("callWorker panic:%v", r)
|
||||
err = fmt.Errorf("panic, r:%v", r)
|
||||
}
|
||||
}()
|
||||
return worker()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user