|
@@ -71,7 +71,7 @@ func RunTask(runner Runner, params *RunTaskParams) (string, error) {
|
|
|
loaded, _ := runnerRegister.LoadOrStore(params.Group, runner)
|
|
|
loadedRunner := loaded.(Runner)
|
|
|
|
|
|
- go runTask(taskEntity, loadedRunner, params.DBSchema, params.DBExecutor, func(ctx map[string]any, runner Runner) error {
|
|
|
+ go runTask(taskEntity, loadedRunner, params.DBSchema, params.DBExecutor, func(ctx map[string]any, runner Runner) (bool, error) {
|
|
|
return runner.Run(taskEntity.ID, ctx)
|
|
|
})
|
|
|
|
|
@@ -127,7 +127,7 @@ func RestartTask(runner Runner, params *RestartTaskParams) error {
|
|
|
loaded, _ := runnerRegister.LoadOrStore(params.Group, runner)
|
|
|
loadedRunner := loaded.(Runner)
|
|
|
|
|
|
- go runTask(&taskEntity, loadedRunner, params.DBSchema, params.DBExecutor, func(ctx map[string]any, runner Runner) error {
|
|
|
+ go runTask(&taskEntity, loadedRunner, params.DBSchema, params.DBExecutor, func(ctx map[string]any, runner Runner) (bool, error) {
|
|
|
return runner.Restart(taskEntity.ID, ctx)
|
|
|
})
|
|
|
}
|
|
@@ -283,7 +283,7 @@ func updateTaskStatusErrorDB(taskEntity *task.Entity, errMsg string, dbSchema st
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
-func runTask(taskEntity *task.Entity, runner Runner, dbSchema string, dbExecutor database.Executor, executeFunc func(ctx map[string]any, runner Runner) error) {
|
|
|
+func runTask(taskEntity *task.Entity, runner Runner, dbSchema string, dbExecutor database.Executor, executeFunc func(ctx map[string]any, runner Runner) (bool, error)) {
|
|
|
ctx, err := taskEntity.GetMapContext()
|
|
|
if err != nil {
|
|
|
err = updateTaskStatusErrorDB(taskEntity, err.Error(), dbSchema, dbExecutor)
|
|
@@ -302,7 +302,7 @@ func runTask(taskEntity *task.Entity, runner Runner, dbSchema string, dbExecutor
|
|
|
}
|
|
|
|
|
|
|
|
|
- err = executeFunc(ctx, runner)
|
|
|
+ stopped, err := executeFunc(ctx, runner)
|
|
|
if err != nil {
|
|
|
err = updateTaskStatusErrorDB(taskEntity, err.Error(), dbSchema, dbExecutor)
|
|
|
if err != nil {
|
|
@@ -313,6 +313,10 @@ func runTask(taskEntity *task.Entity, runner Runner, dbSchema string, dbExecutor
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+ if stopped {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
err = updateTaskStatusCompleteDB(taskEntity, dbSchema, dbExecutor)
|
|
|
if err != nil {
|
|
|
logger.GetInstance().Error("更新任务完成状态失败 ", err)
|