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..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 @@ -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.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 22ac1b95db0f..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 @@ -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 */ @@ -116,7 +109,7 @@ public class TaskNode { /** * node dependency list */ - private List depList; + private List predecessors; /** * task instance priority @@ -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; } @@ -217,14 +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; - this.preTasks = JSONUtils.toJsonString(depList); + public void setPredecessors(List predecessors) { + if (predecessors != null) { + this.predecessors = predecessors; } } @@ -265,18 +248,17 @@ 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) && 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, preTasks, extras, depList, runFlag); + return Objects.hash(name, desc, type, params, extras, predecessors, runFlag); } public int getMaxRetryTimes() { @@ -357,9 +339,8 @@ public String toString() { + ", maxRetryTimes=" + maxRetryTimes + ", retryInterval=" + retryInterval + ", params='" + params + '\'' - + ", preTasks='" + preTasks + '\'' + ", 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 fb9b66b93695..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,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.setPredecessors(code.getValue().stream().map(taskDefinitionLogMap::get) + .map(TaskDefinition::getCode).collect(Collectors.toList())); taskNode.setTaskGroupId(taskDefinitionLog.getTaskGroupId()); taskNode.setTaskGroupPriority(taskDefinitionLog.getTaskGroupPriority()); taskNode.setCpuQuota(taskDefinitionLog.getCpuQuota());