From 042d3b5616b79729ddd4110f35547b295d34493b Mon Sep 17 00:00:00 2001 From: gazebo Date: Sat, 20 Oct 2018 10:49:32 +0800 Subject: [PATCH] - BaseTask.GetID --- business/jxutils/tasksch/task.go | 5 +++++ business/jxutils/tasksch/task_man.go | 11 ++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/business/jxutils/tasksch/task.go b/business/jxutils/tasksch/task.go index cf22e6af9..8a65b59b4 100644 --- a/business/jxutils/tasksch/task.go +++ b/business/jxutils/tasksch/task.go @@ -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 diff --git a/business/jxutils/tasksch/task_man.go b/business/jxutils/tasksch/task_man.go index 190141cff..c117e4b0c 100644 --- a/business/jxutils/tasksch/task_man.go +++ b/business/jxutils/tasksch/task_man.go @@ -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) +}