- BaseTask.GetID

This commit is contained in:
gazebo
2018-10-20 10:49:32 +08:00
parent 1c74a43c1b
commit 042d3b5616
2 changed files with 15 additions and 1 deletions

View File

@@ -25,6 +25,7 @@ type TaskList []ITask
type ITask interface {
Run()
GetID() string
GetResult(duration time.Duration) (retVal []interface{}, err error)
Cancel()
GetTotalItemCount() int
@@ -104,6 +105,10 @@ func (t *BaseTask) Init(parallelCount, batchSize int, isContinueWhenError bool,
t.C = t.finishChan
}
func (t *BaseTask) GetID() string {
return t.ID
}
func (t *BaseTask) GetResult(duration time.Duration) (retVal []interface{}, err error) {
if t.GetStatus() >= TaskStatusEndBegin {
return t.Result, t.Err

View File

@@ -20,7 +20,7 @@ func init() {
func (m *TaskMan) RunTask(taskName string, isContinueWhenError bool, resultHandler ResultHandlerFunc, parallelCount, batchSize int, userName string, worker WorkFunc, itemList interface{}, params ...interface{}) *ParallelTask {
task := RunTask(taskName, isContinueWhenError, resultHandler, parallelCount, batchSize, userName, worker, itemList, params...)
m.taskList[task.ID] = task
m.ManageTask(task)
return task
}
@@ -39,6 +39,11 @@ func (m *TaskMan) GetTasks(taskID string, fromStatus, toStatus int, lastHours in
return taskList
}
func (m *TaskMan) ManageTask(task ITask) ITask {
m.taskList[task.GetID()] = task
return task
}
func RunManagedTask(taskName string, isContinueWhenError bool, resultHandler ResultHandlerFunc, parallelCount, batchSize int, userName string, worker WorkFunc, itemList interface{}, params ...interface{}) *ParallelTask {
return defTaskMan.RunTask(taskName, isContinueWhenError, resultHandler, parallelCount, batchSize, userName, worker, itemList, params...)
}
@@ -46,3 +51,7 @@ func RunManagedTask(taskName string, isContinueWhenError bool, resultHandler Res
func GetTasks(taskID string, fromStatus, toStatus int, lastHours int) (taskList TaskList) {
return defTaskMan.GetTasks(taskID, fromStatus, toStatus, lastHours)
}
func ManageTask(task ITask) ITask {
return defTaskMan.ManageTask(task)
}