Skip to content

Commit d86ab9d

Browse files
committed
#AI Commit#
bug fix
1 parent c44645a commit d86ab9d

1 file changed

Lines changed: 11 additions & 2 deletions

File tree

  • dss-orchestrator/orchestrators/dss-workflow/dss-flow-execution-server/src/main/scala/com/webank/wedatasphere/dss/flow/execution/entrance/resolver

dss-orchestrator/orchestrators/dss-workflow/dss-flow-execution-server/src/main/scala/com/webank/wedatasphere/dss/flow/execution/entrance/resolver/FlowDependencyResolverImpl.scala

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,10 @@ class FlowDependencyResolverImpl extends FlowDependencyResolver with Logging {
4848
true
4949
}
5050

51+
def hasSkippedParent(node: WorkflowNode): Boolean = {
52+
node.getDependencys != null && node.getDependencys.exists(flowContext.getSkippedNodes.containsKey)
53+
}
54+
5155
def shouldSkipByBranch(node: WorkflowNode): Boolean = {
5256
incomingEdges(node).exists { edge =>
5357
workflowNodesById.get(edge.getSource).exists { sourceNode =>
@@ -59,6 +63,10 @@ class FlowDependencyResolverImpl extends FlowDependencyResolver with Logging {
5963
}
6064
}
6165

66+
def shouldSkip(node: WorkflowNode): Boolean = {
67+
shouldSkipByBranch(node) || hasSkippedParent(node)
68+
}
69+
6270
def isBranchRouteMatched(node: WorkflowNode): Boolean = {
6371
incomingEdges(node).forall { edge =>
6472
workflowNodesById.get(edge.getSource) match {
@@ -76,11 +84,12 @@ class FlowDependencyResolverImpl extends FlowDependencyResolver with Logging {
7684
!FlowContext.isNodeRunning(nodeName, flowContext) &&
7785
!flowContext.isNodeCompleted(nodeName) &&
7886
isAllParentDependencyCompleted(node.getDependencys) &&
87+
!shouldSkip(node) &&
7988
isBranchRouteMatched(node)
8089
}
81-
if (flowContext.getPendingNodes.containsKey(nodeName) && !flowContext.isNodeCompleted(nodeName) && isAllParentDependencyCompleted(node.getDependencys) && shouldSkipByBranch(node)) {
90+
if (flowContext.getPendingNodes.containsKey(nodeName) && !flowContext.isNodeCompleted(nodeName) && isAllParentDependencyCompleted(node.getDependencys) && shouldSkip(node)) {
8291
flowContext synchronized {
83-
if (flowContext.getPendingNodes.containsKey(nodeName) && shouldSkipByBranch(node)) {
92+
if (flowContext.getPendingNodes.containsKey(nodeName) && shouldSkip(node)) {
8493
flowContext.getPendingNodes.get(nodeName).tunToSkipped()
8594
}
8695
}

0 commit comments

Comments
 (0)