From 90c60430b23b88f17e31b3004a091ca23ca9ceb1 Mon Sep 17 00:00:00 2001 From: opensnail <598092184@qq.com> Date: Wed, 3 Jul 2024 13:04:39 +0800 Subject: [PATCH] =?UTF-8?q?fix(sj=5F1.1.0-beta2):=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E5=86=B3=E7=AD=96=E8=8A=82=E7=82=B9=E8=B7=B3=E8=BF=87=E6=89=A7?= =?UTF-8?q?=E8=A1=8C=E5=AF=BC=E8=87=B4=E5=90=8E=E7=BB=AD=E8=8A=82=E7=82=B9?= =?UTF-8?q?=E4=B8=8D=E6=89=A7=E8=A1=8C=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../task/support/dispatch/WorkflowExecutorActor.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/dispatch/WorkflowExecutorActor.java b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/dispatch/WorkflowExecutorActor.java index 0fb752b3..146b6c09 100644 --- a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/dispatch/WorkflowExecutorActor.java +++ b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/dispatch/WorkflowExecutorActor.java @@ -263,7 +263,8 @@ public class WorkflowExecutorActor extends AbstractActor { } private boolean arePredecessorsComplete(final WorkflowNodeTaskExecuteDTO taskExecute, Set predecessors, - Map> jobTaskBatchMap, WorkflowNode waitExecWorkflowNode, Map workflowNodeMap) { + Map> jobTaskBatchMap, WorkflowNode waitExecWorkflowNode, + Map workflowNodeMap) { // 判断所有节点是否都完成 for (final Long nodeId : predecessors) { @@ -290,12 +291,17 @@ public class WorkflowExecutorActor extends AbstractActor { // 父节点只要有一个是失败的且失败策略是阻塞的则当前节点不处理 if (jobTaskBatches.stream() - .map(JobTaskBatch::getTaskBatchStatus) - .anyMatch(i -> i != JobTaskBatchStatusEnum.SUCCESS.getStatus())) { + .anyMatch(jobTaskBatch -> + jobTaskBatch.getTaskBatchStatus() != JobTaskBatchStatusEnum.SUCCESS.getStatus() + && !JobOperationReasonEnum.WORKFLOW_SUCCESSOR_SKIP_EXECUTION.contains(jobTaskBatch.getOperationReason())) + ) { WorkflowNode preWorkflowNode = workflowNodeMap.get(nodeId); // 根据失败策略判断是否继续处理 if (Objects.equals(preWorkflowNode.getFailStrategy(), FailStrategyEnum.BLOCK.getCode())) { + SnailJobLog.LOCAL.warn("此节点执行失败且失败策略配置了【阻塞】中断执行 [{}] 待执行节点:[{}] parentId:[{}]", nodeId, + taskExecute.getParentId(), + waitExecWorkflowNode.getId() ); return Boolean.FALSE; } }