diff --git a/api/src/main/java/dev/jianmu/api/eventhandler/AsyncTaskInstanceEventHandler.java b/api/src/main/java/dev/jianmu/api/eventhandler/AsyncTaskInstanceEventHandler.java index 3ab21ea16a30f6dcf89355a9554942cbc16eb272..75c5c88b1d7b1df403e1b79d70dfe9a8a7d007f2 100644 --- a/api/src/main/java/dev/jianmu/api/eventhandler/AsyncTaskInstanceEventHandler.java +++ b/api/src/main/java/dev/jianmu/api/eventhandler/AsyncTaskInstanceEventHandler.java @@ -162,7 +162,8 @@ public class AsyncTaskInstanceEventHandler { log.info("-----------------------------------------------------"); } - @EventListener + @Async + @TransactionalEventListener(phase = TransactionPhase.AFTER_COMMIT) public void handleTaskFailedEvent(TaskFailedEvent event) { MDC.put("triggerId", event.getTriggerId()); log.info("Get TaskFailedEvent here -------------------------"); diff --git a/application/src/main/java/dev/jianmu/application/service/internal/WorkflowInstanceInternalApplication.java b/application/src/main/java/dev/jianmu/application/service/internal/WorkflowInstanceInternalApplication.java index 1fbd6074c566fa1306004ae5af795ffe0c8358c0..791cbead5e1f575a20011648d941e175440b9e95 100644 --- a/application/src/main/java/dev/jianmu/application/service/internal/WorkflowInstanceInternalApplication.java +++ b/application/src/main/java/dev/jianmu/application/service/internal/WorkflowInstanceInternalApplication.java @@ -190,7 +190,6 @@ public class WorkflowInstanceInternalApplication { } // 终止流程 - @Async @Transactional public void terminate(String instanceId) { var workflowInstance = this.workflowInstanceRepository.findById(instanceId) @@ -201,7 +200,7 @@ public class WorkflowInstanceInternalApplication { MDC.put("triggerId", workflowInstance.getTriggerId()); workflowInstance.terminate(); this.workflowInstanceRepository.save(workflowInstance); - if (projectLastExecution.getStatus() == ProcessStatus.TERMINATED.name()) { + if (projectLastExecution.getStatus().equals(ProcessStatus.TERMINATED.name())) { log.warn("流程实例已终止,无需终止"); return; }