From f053a087ef3d518ade8346d28a05d6171dc2b8ff Mon Sep 17 00:00:00 2001 From: unigof Date: Fri, 9 May 2025 22:16:15 +0800 Subject: [PATCH 1/3] [service] use depList instead of preTasks in TaskNode --- .../service/impl/WorkflowDefinitionServiceImpl.java | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowDefinitionServiceImpl.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowDefinitionServiceImpl.java index 6d9678d06d83..296d0beb9aba 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowDefinitionServiceImpl.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowDefinitionServiceImpl.java @@ -1970,19 +1970,16 @@ public Map viewTree(User loginUser, long projectCode, long code, * @return if graph has cycle flag */ private boolean graphHasCycle(List taskNodeResponseList) { - DAG graph = new DAG<>(); + DAG graph = new DAG<>(); // Fill the vertices for (TaskNode taskNodeResponse : taskNodeResponseList) { - graph.addNode(Long.toString(taskNodeResponse.getCode()), taskNodeResponse); + graph.addNode(taskNodeResponse.getCode(), taskNodeResponse); } // Fill edge relations for (TaskNode taskNodeResponse : taskNodeResponseList) { - List preTasks = JSONUtils.toList(taskNodeResponse.getPreTasks(), String.class); - if (CollectionUtils.isNotEmpty(preTasks)) { - for (String preTask : preTasks) { - if (!graph.addEdge(preTask, Long.toString(taskNodeResponse.getCode()))) { - return true; - } + for (Long preTask : taskNodeResponse.getDepList()) { + if (!graph.addEdge(preTask, taskNodeResponse.getCode())) { + return true; } } } From 561879be5cb578444be14d38b1fb281e00141c98 Mon Sep 17 00:00:00 2001 From: unigof Date: Tue, 13 May 2025 10:49:36 +0800 Subject: [PATCH 2/3] unify preTasks and depList to depList in TaskNode --- .../service/model/TaskNode.java | 21 +------------------ .../service/process/ProcessServiceImpl.java | 4 ++-- 2 files changed, 3 insertions(+), 22 deletions(-) diff --git a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/model/TaskNode.java b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/model/TaskNode.java index 22ac1b95db0f..1d9371969383 100644 --- a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/model/TaskNode.java +++ b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/model/TaskNode.java @@ -99,13 +99,6 @@ public class TaskNode { @JsonSerialize(using = JSONUtils.JsonDataSerializer.class) private String params; - /** - * inner dependency information - */ - @JsonDeserialize(using = JSONUtils.JsonDataDeserializer.class) - @JsonSerialize(using = JSONUtils.JsonDataSerializer.class) - private String preTasks; - /** * users store additional information */ @@ -200,15 +193,6 @@ public void setParams(String params) { this.params = params; } - public String getPreTasks() { - return preTasks; - } - - public void setPreTasks(String preTasks) { - this.preTasks = preTasks; - this.depList = JSONUtils.toList(preTasks, Long.class); - } - public String getExtras() { return extras; } @@ -224,7 +208,6 @@ public List getDepList() { public void setDepList(List depList) { if (depList != null) { this.depList = depList; - this.preTasks = JSONUtils.toJsonString(depList); } } @@ -265,7 +248,6 @@ public boolean equals(Object o) { && Objects.equals(desc, taskNode.desc) && Objects.equals(type, taskNode.type) && Objects.equals(params, taskNode.params) - && Objects.equals(preTasks, taskNode.preTasks) && Objects.equals(extras, taskNode.extras) && Objects.equals(runFlag, taskNode.runFlag) && Objects.equals(workerGroup, taskNode.workerGroup) @@ -276,7 +258,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(name, desc, type, params, preTasks, extras, depList, runFlag); + return Objects.hash(name, desc, type, params, extras, depList, runFlag); } public int getMaxRetryTimes() { @@ -357,7 +339,6 @@ public String toString() { + ", maxRetryTimes=" + maxRetryTimes + ", retryInterval=" + retryInterval + ", params='" + params + '\'' - + ", preTasks='" + preTasks + '\'' + ", extras='" + extras + '\'' + ", depList=" + depList + ", taskInstancePriority=" + taskInstancePriority diff --git a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessServiceImpl.java b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessServiceImpl.java index fb9b66b93695..a9a2bf694f97 100644 --- a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessServiceImpl.java +++ b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessServiceImpl.java @@ -718,8 +718,8 @@ public List transformTask(List taskRelationList, taskDefinitionLog.getTimeoutNotifyStrategy(), taskDefinitionLog.getTimeout()))); taskNode.setDelayTime(taskDefinitionLog.getDelayTime()); - taskNode.setPreTasks(JSONUtils.toJsonString(code.getValue().stream().map(taskDefinitionLogMap::get) - .map(TaskDefinition::getCode).collect(Collectors.toList()))); + taskNode.setDepList(code.getValue().stream().map(taskDefinitionLogMap::get) + .map(TaskDefinition::getCode).collect(Collectors.toList())); taskNode.setTaskGroupId(taskDefinitionLog.getTaskGroupId()); taskNode.setTaskGroupPriority(taskDefinitionLog.getTaskGroupPriority()); taskNode.setCpuQuota(taskDefinitionLog.getCpuQuota()); From acc0a030bd41aad2234fe9d46e79a742af4f3a3c Mon Sep 17 00:00:00 2001 From: unigof Date: Thu, 15 May 2025 20:44:02 +0800 Subject: [PATCH 3/3] update depList to predecessors --- .../impl/WorkflowDefinitionServiceImpl.java | 2 +- .../service/model/TaskNode.java | 18 +++++++++--------- .../service/process/ProcessServiceImpl.java | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowDefinitionServiceImpl.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowDefinitionServiceImpl.java index 296d0beb9aba..c7b4ca5f0ad6 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowDefinitionServiceImpl.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowDefinitionServiceImpl.java @@ -1977,7 +1977,7 @@ private boolean graphHasCycle(List taskNodeResponseList) { } // Fill edge relations for (TaskNode taskNodeResponse : taskNodeResponseList) { - for (Long preTask : taskNodeResponse.getDepList()) { + for (Long preTask : taskNodeResponse.getPredecessors()) { if (!graph.addEdge(preTask, taskNodeResponse.getCode())) { return true; } diff --git a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/model/TaskNode.java b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/model/TaskNode.java index 1d9371969383..75f439e883fe 100644 --- a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/model/TaskNode.java +++ b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/model/TaskNode.java @@ -109,7 +109,7 @@ public class TaskNode { /** * node dependency list */ - private List depList; + private List predecessors; /** * task instance priority @@ -201,13 +201,13 @@ public void setExtras(String extras) { this.extras = extras; } - public List getDepList() { - return depList; + public List getPredecessors() { + return predecessors; } - public void setDepList(List depList) { - if (depList != null) { - this.depList = depList; + public void setPredecessors(List predecessors) { + if (predecessors != null) { + this.predecessors = predecessors; } } @@ -252,13 +252,13 @@ public boolean equals(Object o) { && Objects.equals(runFlag, taskNode.runFlag) && Objects.equals(workerGroup, taskNode.workerGroup) && Objects.equals(environmentCode, taskNode.environmentCode) - && CollectionUtils.isEqualCollection(depList, taskNode.depList) + && CollectionUtils.isEqualCollection(predecessors, taskNode.predecessors) && Objects.equals(taskExecuteType, taskNode.taskExecuteType); } @Override public int hashCode() { - return Objects.hash(name, desc, type, params, extras, depList, runFlag); + return Objects.hash(name, desc, type, params, extras, predecessors, runFlag); } public int getMaxRetryTimes() { @@ -340,7 +340,7 @@ public String toString() { + ", retryInterval=" + retryInterval + ", params='" + params + '\'' + ", extras='" + extras + '\'' - + ", depList=" + depList + + ", depList=" + predecessors + ", taskInstancePriority=" + taskInstancePriority + ", workerGroup='" + workerGroup + '\'' + ", environmentCode=" + environmentCode diff --git a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessServiceImpl.java b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessServiceImpl.java index a9a2bf694f97..64a11d5de5a2 100644 --- a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessServiceImpl.java +++ b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessServiceImpl.java @@ -718,7 +718,7 @@ public List transformTask(List taskRelationList, taskDefinitionLog.getTimeoutNotifyStrategy(), taskDefinitionLog.getTimeout()))); taskNode.setDelayTime(taskDefinitionLog.getDelayTime()); - taskNode.setDepList(code.getValue().stream().map(taskDefinitionLogMap::get) + taskNode.setPredecessors(code.getValue().stream().map(taskDefinitionLogMap::get) .map(TaskDefinition::getCode).collect(Collectors.toList())); taskNode.setTaskGroupId(taskDefinitionLog.getTaskGroupId()); taskNode.setTaskGroupPriority(taskDefinitionLog.getTaskGroupPriority());