Skip to content

Commit 69bd990

Browse files
committed
Fix workflow failure strategy
1 parent 4283cfd commit 69bd990

1 file changed

Lines changed: 28 additions & 23 deletions

File tree

dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/runner/WorkflowExecuteRunnable.java

Lines changed: 28 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,19 @@
1717

1818
package org.apache.dolphinscheduler.server.master.runner;
1919

20-
import com.google.common.collect.Lists;
21-
import lombok.NonNull;
22-
import org.apache.commons.collections.CollectionUtils;
23-
import org.apache.commons.lang3.StringUtils;
24-
import org.apache.commons.lang3.math.NumberUtils;
20+
import static org.apache.dolphinscheduler.common.Constants.CMDPARAM_COMPLEMENT_DATA_END_DATE;
21+
import static org.apache.dolphinscheduler.common.Constants.CMDPARAM_COMPLEMENT_DATA_SCHEDULE_DATE_LIST;
22+
import static org.apache.dolphinscheduler.common.Constants.CMDPARAM_COMPLEMENT_DATA_START_DATE;
23+
import static org.apache.dolphinscheduler.common.Constants.CMD_PARAM_RECOVERY_START_NODE_STRING;
24+
import static org.apache.dolphinscheduler.common.Constants.CMD_PARAM_RECOVER_PROCESS_ID_STRING;
25+
import static org.apache.dolphinscheduler.common.Constants.CMD_PARAM_START_NODES;
26+
import static org.apache.dolphinscheduler.common.Constants.COMMA;
27+
import static org.apache.dolphinscheduler.common.Constants.DEFAULT_WORKER_GROUP;
28+
import static org.apache.dolphinscheduler.common.Constants.YYYY_MM_DD_HH_MM_SS;
29+
import static org.apache.dolphinscheduler.plugin.task.api.TaskConstants.TASK_TYPE_BLOCKING;
30+
import static org.apache.dolphinscheduler.plugin.task.api.enums.DataType.VARCHAR;
31+
import static org.apache.dolphinscheduler.plugin.task.api.enums.Direct.IN;
32+
2533
import org.apache.dolphinscheduler.common.Constants;
2634
import org.apache.dolphinscheduler.common.enums.CommandType;
2735
import org.apache.dolphinscheduler.common.enums.FailureStrategy;
@@ -77,9 +85,10 @@
7785
import org.apache.dolphinscheduler.service.expand.CuringParamsService;
7886
import org.apache.dolphinscheduler.service.process.ProcessService;
7987
import org.apache.dolphinscheduler.service.queue.PeerTaskInstancePriorityQueue;
80-
import org.slf4j.Logger;
81-
import org.slf4j.LoggerFactory;
82-
import org.springframework.beans.BeanUtils;
88+
89+
import org.apache.commons.collections.CollectionUtils;
90+
import org.apache.commons.lang3.StringUtils;
91+
import org.apache.commons.lang3.math.NumberUtils;
8392

8493
import java.util.ArrayList;
8594
import java.util.Arrays;
@@ -100,18 +109,13 @@
100109
import java.util.concurrent.atomic.AtomicBoolean;
101110
import java.util.stream.Collectors;
102111

103-
import static org.apache.dolphinscheduler.common.Constants.CMDPARAM_COMPLEMENT_DATA_END_DATE;
104-
import static org.apache.dolphinscheduler.common.Constants.CMDPARAM_COMPLEMENT_DATA_SCHEDULE_DATE_LIST;
105-
import static org.apache.dolphinscheduler.common.Constants.CMDPARAM_COMPLEMENT_DATA_START_DATE;
106-
import static org.apache.dolphinscheduler.common.Constants.CMD_PARAM_RECOVERY_START_NODE_STRING;
107-
import static org.apache.dolphinscheduler.common.Constants.CMD_PARAM_RECOVER_PROCESS_ID_STRING;
108-
import static org.apache.dolphinscheduler.common.Constants.CMD_PARAM_START_NODES;
109-
import static org.apache.dolphinscheduler.common.Constants.COMMA;
110-
import static org.apache.dolphinscheduler.common.Constants.DEFAULT_WORKER_GROUP;
111-
import static org.apache.dolphinscheduler.common.Constants.YYYY_MM_DD_HH_MM_SS;
112-
import static org.apache.dolphinscheduler.plugin.task.api.TaskConstants.TASK_TYPE_BLOCKING;
113-
import static org.apache.dolphinscheduler.plugin.task.api.enums.DataType.VARCHAR;
114-
import static org.apache.dolphinscheduler.plugin.task.api.enums.Direct.IN;
112+
import lombok.NonNull;
113+
114+
import org.slf4j.Logger;
115+
import org.slf4j.LoggerFactory;
116+
import org.springframework.beans.BeanUtils;
117+
118+
import com.google.common.collect.Lists;
115119

116120
/**
117121
* Workflow execute task, used to execute a workflow instance.
@@ -1808,7 +1812,8 @@ public void submitStandByTask() throws StateEventHandleException {
18081812
getPreVarPool(task, preTask);
18091813
}
18101814
DependResult dependResult = getDependResultForTask(task);
1811-
if (DependResult.SUCCESS == dependResult) {
1815+
if (DependResult.SUCCESS == dependResult
1816+
|| processInstance.getFailureStrategy() == FailureStrategy.CONTINUE) {
18121817
Optional<TaskInstance> taskInstanceOptional = submitTaskExec(task);
18131818
if (!taskInstanceOptional.isPresent()) {
18141819
this.taskFailedSubmit = true;
@@ -1834,7 +1839,7 @@ public void submitStandByTask() throws StateEventHandleException {
18341839
// if the dependency fails, the current node is not submitted and the state changes to failure.
18351840
dependFailedTaskMap.put(task.getTaskCode(), task.getId());
18361841
removeTaskFromStandbyList(task);
1837-
logger.info("Task dependent result is failed, taskInstanceId:{} depend result : {}", task.getId(),
1842+
logger.info("Dependent task failed, taskInstanceId:{} depend result: {}", task.getId(),
18381843
dependResult);
18391844
} else if (DependResult.NON_EXEC == dependResult) {
18401845
// for some reasons(depend task pause/stop) this task would not be submit
@@ -2014,4 +2019,4 @@ private enum WorkflowRunnableStatus {
20142019

20152020
}
20162021

2017-
}
2022+
}

0 commit comments

Comments
 (0)