- big refactor tasksch
This commit is contained in:
@@ -12,7 +12,7 @@ const (
|
||||
StepEnd = "End"
|
||||
)
|
||||
|
||||
type SeqWorkFunc func(step int, params ...interface{}) (result interface{}, err error) // 只有最后一次返回结果保留
|
||||
type SeqWorkFunc func(task *SeqTask, step int, params ...interface{}) (result interface{}, err error)
|
||||
|
||||
type SeqTask struct {
|
||||
BaseTask
|
||||
@@ -27,6 +27,12 @@ func NewSeqTask(taskName string, userName string, worker SeqWorkFunc, stepCount
|
||||
return task
|
||||
}
|
||||
|
||||
func RunSeqTask(taskName string, userName string, worker SeqWorkFunc, stepCount int, params ...interface{}) *SeqTask {
|
||||
task := NewSeqTask(taskName, userName, worker, stepCount, params...)
|
||||
task.Run()
|
||||
return task
|
||||
}
|
||||
|
||||
func (task *SeqTask) Run() {
|
||||
task.run(func() {
|
||||
globals.SugarLogger.Debugf("SeqTask.Run %s", task.Name)
|
||||
@@ -38,7 +44,7 @@ func (task *SeqTask) Run() {
|
||||
goto EndFor
|
||||
default:
|
||||
}
|
||||
result, err := task.worker(i, task.params...)
|
||||
result, err := task.worker(task, i, task.params...)
|
||||
task.finishedOneJob(1, err)
|
||||
if taskErr = err; taskErr != nil {
|
||||
globals.SugarLogger.Infof("SeqTask.Run %s step:%d failed with error:%v", task.Name, i, err)
|
||||
@@ -72,3 +78,8 @@ func (task *SeqTask) Run() {
|
||||
close(task.quitChan)
|
||||
})
|
||||
}
|
||||
|
||||
func (t *SeqTask) AddChild(task ITask) {
|
||||
t.BaseTask.AddChild(task)
|
||||
task.SetParent(t)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user