- big refactor tasksch
This commit is contained in:
@@ -14,7 +14,7 @@ const (
|
||||
MaxParallelCount = 10
|
||||
)
|
||||
|
||||
type WorkFunc func(batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error)
|
||||
type WorkFunc func(task *ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error)
|
||||
type ResultHandlerFunc func(taskName string, result []interface{}, err error)
|
||||
|
||||
type ParallelConfig struct {
|
||||
@@ -68,7 +68,7 @@ func (c *ParallelConfig) SetResultHandler(resultHandler ResultHandlerFunc) *Para
|
||||
return c
|
||||
}
|
||||
|
||||
func NewParallelTask(taskName string, userName string, config *ParallelConfig, worker WorkFunc, itemList interface{}, params ...interface{}) *ParallelTask {
|
||||
func NewParallelTask(taskName string, config *ParallelConfig, userName string, worker WorkFunc, itemList interface{}, params ...interface{}) *ParallelTask {
|
||||
if config == nil {
|
||||
config = NewParallelConfig()
|
||||
}
|
||||
@@ -95,19 +95,8 @@ func NewParallelTask(taskName string, userName string, config *ParallelConfig, w
|
||||
return task
|
||||
}
|
||||
|
||||
func RunParallelTask(taskName string, userName string, config *ParallelConfig, worker WorkFunc, itemList interface{}, params ...interface{}) *ParallelTask {
|
||||
task := NewParallelTask(taskName, userName, config, worker, itemList, params...)
|
||||
task.Run()
|
||||
return task
|
||||
}
|
||||
|
||||
func RunTask(taskName string, isContinueWhenError bool, resultHandler ResultHandlerFunc, parallelCount, batchSize int, userName string, worker WorkFunc, itemList interface{}, params ...interface{}) *ParallelTask {
|
||||
config := NewParallelConfig()
|
||||
config.BatchSize = batchSize
|
||||
config.IsContinueWhenError = isContinueWhenError
|
||||
config.ParallelCount = parallelCount
|
||||
config.ResultHandler = resultHandler
|
||||
task := NewParallelTask(taskName, userName, config, worker, itemList, params...)
|
||||
func RunParallelTask(taskName string, config *ParallelConfig, userName string, worker WorkFunc, itemList interface{}, params ...interface{}) *ParallelTask {
|
||||
task := NewParallelTask(taskName, config, userName, worker, itemList, params...)
|
||||
task.Run()
|
||||
return task
|
||||
}
|
||||
@@ -128,7 +117,7 @@ func (task *ParallelTask) Run() {
|
||||
chanRetVal = retVal
|
||||
goto end
|
||||
} else {
|
||||
result, err := task.worker(job, task.params...)
|
||||
result, err := task.worker(task, job, task.params...)
|
||||
// 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 {
|
||||
@@ -204,3 +193,8 @@ func (task *ParallelTask) Run() {
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (t *ParallelTask) AddChild(task ITask) {
|
||||
t.BaseTask.AddChild(task)
|
||||
task.SetParent(t)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user