refactor(task): 移除任务步骤回调接口
- 删除 TaskStepCallback 接口定义 - 修改 TaskStepExecutor 接口 execute 方法签名,移除 callback 参数 - 更新所有实现类,去除对 callback 的调用 - 在 TaskJobBean 中直接调用 service 方法处理执行状态 - 为 TaskInstanceDetailService 添加 fastSuccess 方法 - 优化 fastSuccessWithInfo 方法默认执行信息逻辑 - 统一任务步骤执行流程的状态管理
This commit is contained in:
@@ -168,17 +168,9 @@ public class TaskJobBean extends QuartzJobBean implements InterruptableJob {
|
||||
String code = taskTemplateNodeVo.getCode();
|
||||
try {
|
||||
TaskStepExecutor executor = CsSpringBeanHolder.getBean("taskStep" + getBeanAlias(code));
|
||||
executor.execute(codeIdMap.getOrDefault(code, null), dataMap, taskTemplateNodeVo, new TaskStepCallback() {
|
||||
@Override
|
||||
public void onStart() {
|
||||
taskInstanceDetailService.fastStart(id, code, dataMap);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFinish(String executeInfo) {
|
||||
taskInstanceDetailService.fastSuccessWithInfo(id, code, executeInfo);
|
||||
}
|
||||
});
|
||||
taskInstanceDetailService.fastStart(id, code, dataMap);
|
||||
executor.execute(codeIdMap.getOrDefault(code, null), dataMap, taskTemplateNodeVo);
|
||||
taskInstanceDetailService.fastSuccessWithInfo(id, code, null);
|
||||
} catch (Exception e) {
|
||||
taskInstanceDetailService.fastFailWithInfo(id, code, e.getMessage());
|
||||
throw new ServerException(e);
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
/*
|
||||
* Copyright 2021-2025 Odboy
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package cn.odboy.task.core;
|
||||
|
||||
public interface TaskStepCallback {
|
||||
void onStart();
|
||||
|
||||
void onFinish(String executeInfo);
|
||||
}
|
||||
+1
-4
@@ -19,14 +19,11 @@ import cn.odboy.framework.exception.BadRequestException;
|
||||
import cn.odboy.task.dal.model.TaskTemplateNodeVo;
|
||||
import org.quartz.JobDataMap;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
public interface TaskStepExecutor {
|
||||
/**
|
||||
* @param instanceDetailId 任务实例明细id
|
||||
* @param jobDataMap 执行参数
|
||||
* @param taskTemplateNode 任务节点信息
|
||||
* @param callback 执行成功回调
|
||||
*/
|
||||
void execute(Long instanceDetailId, JobDataMap jobDataMap, TaskTemplateNodeVo taskTemplateNode, @NotNull TaskStepCallback callback) throws BadRequestException;
|
||||
void execute(Long instanceDetailId, JobDataMap jobDataMap, TaskTemplateNodeVo taskTemplateNode) throws BadRequestException;
|
||||
}
|
||||
|
||||
+1
-4
@@ -17,7 +17,6 @@ package cn.odboy.task.core.impl;
|
||||
|
||||
import cn.hutool.core.thread.ThreadUtil;
|
||||
import cn.odboy.framework.exception.BadRequestException;
|
||||
import cn.odboy.task.core.TaskStepCallback;
|
||||
import cn.odboy.task.core.TaskStepExecutor;
|
||||
import cn.odboy.task.dal.model.TaskTemplateNodeVo;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -29,9 +28,7 @@ import org.springframework.stereotype.Component;
|
||||
public class TaskStepNodeBuildJava implements TaskStepExecutor {
|
||||
|
||||
@Override
|
||||
public void execute(Long instanceDetailId, JobDataMap jobDataMap, TaskTemplateNodeVo taskTemplateNode, TaskStepCallback callback) throws BadRequestException {
|
||||
callback.onStart();
|
||||
public void execute(Long instanceDetailId, JobDataMap jobDataMap, TaskTemplateNodeVo taskTemplateNode) throws BadRequestException {
|
||||
ThreadUtil.sleep(2000);
|
||||
callback.onFinish("执行成功");
|
||||
}
|
||||
}
|
||||
|
||||
+1
-4
@@ -17,7 +17,6 @@ package cn.odboy.task.core.impl;
|
||||
|
||||
import cn.hutool.core.thread.ThreadUtil;
|
||||
import cn.odboy.framework.exception.BadRequestException;
|
||||
import cn.odboy.task.core.TaskStepCallback;
|
||||
import cn.odboy.task.core.TaskStepExecutor;
|
||||
import cn.odboy.task.dal.model.TaskTemplateNodeVo;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -29,9 +28,7 @@ import org.springframework.stereotype.Component;
|
||||
public class TaskStepNodeDeployJava implements TaskStepExecutor {
|
||||
|
||||
@Override
|
||||
public void execute(Long instanceDetailId, JobDataMap jobDataMap, TaskTemplateNodeVo taskTemplateNode, TaskStepCallback callback) throws BadRequestException {
|
||||
callback.onStart();
|
||||
public void execute(Long instanceDetailId, JobDataMap jobDataMap, TaskTemplateNodeVo taskTemplateNode) throws BadRequestException {
|
||||
ThreadUtil.sleep(5000);
|
||||
callback.onFinish("执行成功");
|
||||
}
|
||||
}
|
||||
|
||||
+4
-7
@@ -16,7 +16,6 @@
|
||||
package cn.odboy.task.core.impl;
|
||||
|
||||
import cn.odboy.framework.exception.BadRequestException;
|
||||
import cn.odboy.task.core.TaskStepCallback;
|
||||
import cn.odboy.task.core.TaskStepExecutor;
|
||||
import cn.odboy.task.dal.model.TaskTemplateNodeVo;
|
||||
import cn.odboy.task.service.TaskInstanceStepDetailService;
|
||||
@@ -29,14 +28,12 @@ import org.springframework.stereotype.Component;
|
||||
@Component
|
||||
public class TaskStepNodeInit implements TaskStepExecutor {
|
||||
@Autowired
|
||||
private TaskInstanceStepDetailService service;
|
||||
private TaskInstanceStepDetailService stepDetailService;
|
||||
|
||||
@Override
|
||||
public void execute(Long instanceDetailId, JobDataMap jobDataMap, TaskTemplateNodeVo taskTemplateNode, TaskStepCallback callback) throws BadRequestException {
|
||||
callback.onStart();
|
||||
service.success(instanceDetailId, "开始初始化");
|
||||
service.success(instanceDetailId, "初始化完毕后,放入了一些参数");
|
||||
public void execute(Long instanceDetailId, JobDataMap jobDataMap, TaskTemplateNodeVo taskTemplateNode) throws BadRequestException {
|
||||
stepDetailService.success(instanceDetailId, "开始初始化");
|
||||
stepDetailService.success(instanceDetailId, "初始化完毕后,放入了一些参数");
|
||||
jobDataMap.put("ExcuseMe", "Hello World!");
|
||||
callback.onFinish("执行成功");
|
||||
}
|
||||
}
|
||||
|
||||
+1
-4
@@ -17,7 +17,6 @@ package cn.odboy.task.core.impl;
|
||||
|
||||
import cn.hutool.core.thread.ThreadUtil;
|
||||
import cn.odboy.framework.exception.BadRequestException;
|
||||
import cn.odboy.task.core.TaskStepCallback;
|
||||
import cn.odboy.task.core.TaskStepExecutor;
|
||||
import cn.odboy.task.dal.model.TaskTemplateNodeVo;
|
||||
import cn.odboy.task.service.TaskInstanceStepDetailService;
|
||||
@@ -33,10 +32,8 @@ public class TaskStepNodeMergeBranch implements TaskStepExecutor {
|
||||
private TaskInstanceStepDetailService service;
|
||||
|
||||
@Override
|
||||
public void execute(Long instanceDetailId, JobDataMap jobDataMap, TaskTemplateNodeVo taskTemplateNode, TaskStepCallback callback) throws BadRequestException {
|
||||
callback.onStart();
|
||||
public void execute(Long instanceDetailId, JobDataMap jobDataMap, TaskTemplateNodeVo taskTemplateNode) throws BadRequestException {
|
||||
ThreadUtil.sleep(3000);
|
||||
service.fail(instanceDetailId, "执行失败测试");
|
||||
callback.onFinish("执行成功");
|
||||
}
|
||||
}
|
||||
|
||||
+2
@@ -32,6 +32,8 @@ import java.util.List;
|
||||
public interface TaskInstanceDetailService extends IService<TaskInstanceDetailTb> {
|
||||
void fastFailWithInfo(Long instanceId, String code, String message);
|
||||
|
||||
void fastSuccess(Long instanceId, String code);
|
||||
|
||||
void fastSuccessWithInfo(Long instanceId, String code, String executeInfo);
|
||||
|
||||
void fastStart(Long instanceId, String code, JobDataMap dataMap);
|
||||
|
||||
+1
-1
@@ -48,7 +48,7 @@ public interface TaskInstanceStepDetailService extends IService<TaskInstanceStep
|
||||
/**
|
||||
* 根据明细ID删除步骤明细
|
||||
*
|
||||
* @param instanceDetailIds
|
||||
* @param instanceDetailIds 任务实例明细id集合
|
||||
*/
|
||||
void removeByInstanceDetailIds(List<Long> instanceDetailIds);
|
||||
}
|
||||
|
||||
+10
-1
@@ -48,11 +48,20 @@ public class TaskInstanceDetailServiceImpl extends ServiceImpl<TaskInstanceDetai
|
||||
lambdaUpdate().eq(TaskInstanceDetailTb::getInstanceId, instanceId).eq(TaskInstanceDetailTb::getBizCode, code).update(updRecord);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fastSuccess(Long instanceId, String code) {
|
||||
TaskInstanceDetailTb updRecord = new TaskInstanceDetailTb();
|
||||
updRecord.setFinishTime(new Date());
|
||||
updRecord.setExecuteInfo("执行成功");
|
||||
updRecord.setExecuteStatus(TaskStatusEnum.Success.getCode());
|
||||
lambdaUpdate().eq(TaskInstanceDetailTb::getInstanceId, instanceId).eq(TaskInstanceDetailTb::getBizCode, code).update(updRecord);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fastSuccessWithInfo(Long instanceId, String code, String executeInfo) {
|
||||
TaskInstanceDetailTb updRecord = new TaskInstanceDetailTb();
|
||||
updRecord.setFinishTime(new Date());
|
||||
updRecord.setExecuteInfo(executeInfo);
|
||||
updRecord.setExecuteInfo(executeInfo == null ? "执行成功" : executeInfo);
|
||||
updRecord.setExecuteStatus(TaskStatusEnum.Success.getCode());
|
||||
lambdaUpdate().eq(TaskInstanceDetailTb::getInstanceId, instanceId).eq(TaskInstanceDetailTb::getBizCode, code).update(updRecord);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user