feat(flow): 添加任务执行入口和实例管理功能

- 在 FlowTaskRuntimeEntry 中添加事务注解支持
- 为 FlowTaskRuntimeService 接口添加方法间隔
- 在 TeFlowController 中引入任务实例ID列表管理
- 新增 demo 接口用于任务执行和实例清理
- 实现任务实例的自动停止和清理机制
- 集成 flowControlService 的 stop 功能用于流程控制
This commit is contained in:
lixiaolong 2026-05-16 13:55:20 +08:00
parent 3868194932
commit 79da694baf
3 changed files with 24 additions and 1 deletions

View File

@ -27,6 +27,8 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.Valid;
import java.util.ArrayList;
import java.util.List;
@Api(tags = "测试--流程服务")
@RestController
@ -41,13 +43,31 @@ public class TeFlowController extends BaseController {
private final FlowControlService flowControlService;
private final FlowActionExecutorService flowActionExecutorService;
private final TiTouchOperateService tiTouchOperateService;
private final List<String> taskInstIdList = new ArrayList<>();
@ApiOperation("流程发布")
@PostMapping("/publish")
public AjaxResult publish(@RequestBody TeDetectionItem detectionItem) {
return toAjax(teDetectionItemService.publish(detectionItem.getId()));
}
@ApiOperation("任务执行入口")
@PostMapping("/demo")
@Anonymous
public AjaxResult demo(@Valid @RequestBody TeTaskExecuteNormalVO taskExecuteNormalVO) {
if (taskInstIdList.size() > 0) {
try {
taskInstIdList.forEach(flowControlService::stop);
} catch (Exception e) {
// 忽略
}
taskInstIdList.clear();
}
String insId = flowTaskRuntimeService.executeTask(taskExecuteNormalVO);
taskInstIdList.add(insId);
return AjaxResult.success();
}
@ApiOperation("任务执行入口")
@PostMapping("/execute")
@Anonymous

View File

@ -42,6 +42,8 @@ public class FlowTaskRuntimeEntry implements FlowTaskRuntimeService {
private final TaskInstHolder taskInstHolder;
private final FlowTaskAsyncDispatcher flowTaskAsyncDispatcher;
@Transactional(rollbackFor = Exception.class)
public String executeTask(TeTaskExecuteNormalVO taskExecuteNormalVO) {
return executeTaskInternal(

View File

@ -18,6 +18,7 @@ public interface FlowTaskRuntimeService {
*/
String executeTask(TeTaskExecuteNormalVO taskExecuteNormalVO);
/**
* 执行试运行任务TRIAL 模式
*