- big refactor tasksch

This commit is contained in:
gazebo
2018-10-20 15:05:02 +08:00
parent 2bfa5fe17f
commit 0d5a5189ed
15 changed files with 210 additions and 184 deletions

View File

@@ -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)
}