From 9748190a8a815b5d575dbe57bcc8ac6b41c6f0af Mon Sep 17 00:00:00 2001 From: Echo009 Date: Thu, 18 Feb 2021 16:53:28 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=B7=A5=E4=BD=9C?= =?UTF-8?q?=E6=B5=81=E5=AE=9E=E4=BE=8B=20DAG=20=E4=B8=AD=E8=8A=82=E7=82=B9?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E6=9C=AA=E5=90=8C=E6=AD=A5=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/service/workflow/WorkflowInstanceManager.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/powerjob-server/src/main/java/com/github/kfcfans/powerjob/server/service/workflow/WorkflowInstanceManager.java b/powerjob-server/src/main/java/com/github/kfcfans/powerjob/server/service/workflow/WorkflowInstanceManager.java index 664167dd..5edf6281 100644 --- a/powerjob-server/src/main/java/com/github/kfcfans/powerjob/server/service/workflow/WorkflowInstanceManager.java +++ b/powerjob-server/src/main/java/com/github/kfcfans/powerjob/server/service/workflow/WorkflowInstanceManager.java @@ -291,6 +291,8 @@ public class WorkflowInstanceManager { } // 注意:这里会直接跳过 disable 的节点 List readyNodes = WorkflowDAGUtils.listReadyNodes(dag); + // 这里得重新更新一下,因为 WorkflowDAGUtils#listReadyNodes 可能会更新节点状态 + wfInstance.setDag(JSON.toJSONString(dag)); // 如果没有就绪的节点,需要再次判断是否已经全部完成 if (readyNodes.isEmpty() && isFinish(dag)) { allFinished = true; @@ -315,7 +317,7 @@ public class WorkflowInstanceManager { readyNode.setStatus(InstanceStatus.RUNNING.getV()); log.debug("[Workflow-{}|{}] workflowInstance start to process new node(nodeId={},jobId={},instanceId={})", wfId, wfInstanceId, readyNode.getNodeId(), readyNode.getJobId(), newInstanceId); } - + // 这里也得更新 DAG 信息 wfInstance.setDag(JSON.toJSONString(dag)); workflowInstanceInfoRepository.saveAndFlush(wfInstance); // 持久化结束后,开始调度执行所有的任务