|
@@ -23,6 +23,7 @@ import static org.apache.dolphinscheduler.common.constants.CommandKeyConstants.C
|
|
|
import static org.apache.dolphinscheduler.common.constants.CommandKeyConstants.CMD_PARAM_COMPLEMENT_DATA_START_DATE;
|
|
|
import static org.apache.dolphinscheduler.common.constants.CommandKeyConstants.CMD_PARAM_EMPTY_SUB_PROCESS;
|
|
|
import static org.apache.dolphinscheduler.common.constants.CommandKeyConstants.CMD_PARAM_RECOVER_PROCESS_ID_STRING;
|
|
|
+import static org.apache.dolphinscheduler.common.constants.CommandKeyConstants.CMD_PARAM_START_PARAMS;
|
|
|
import static org.apache.dolphinscheduler.common.constants.CommandKeyConstants.CMD_PARAM_SUB_PROCESS;
|
|
|
import static org.apache.dolphinscheduler.common.constants.CommandKeyConstants.CMD_PARAM_SUB_PROCESS_DEFINE_CODE;
|
|
|
import static org.apache.dolphinscheduler.common.constants.CommandKeyConstants.CMD_PARAM_SUB_PROCESS_PARENT_INSTANCE_ID;
|
|
@@ -770,8 +771,9 @@ public class ProcessServiceImpl implements ProcessService {
|
|
|
}
|
|
|
|
|
|
CommandType commandTypeIfComplement = getCommandTypeIfComplement(processInstance, command);
|
|
|
- // reset global params while repeat running is needed by cmdParam
|
|
|
- if (commandTypeIfComplement == CommandType.REPEAT_RUNNING) {
|
|
|
+ // reset global params while repeat running and recover tolerance fault process is needed by cmdParam
|
|
|
+ if (commandTypeIfComplement == CommandType.REPEAT_RUNNING ||
|
|
|
+ commandTypeIfComplement == CommandType.RECOVER_TOLERANCE_FAULT_PROCESS) {
|
|
|
setGlobalParamIfCommanded(processDefinition, cmdParam);
|
|
|
}
|
|
|
|
|
@@ -1590,8 +1592,7 @@ public class ProcessServiceImpl implements ProcessService {
|
|
|
cmd.setProcessDefinitionCode(processInstance.getProcessDefinitionCode());
|
|
|
cmd.setProcessDefinitionVersion(processInstance.getProcessDefinitionVersion());
|
|
|
cmd.setProcessInstanceId(processInstance.getId());
|
|
|
- cmd.setCommandParam(
|
|
|
- String.format("{\"%s\":%d}", CMD_PARAM_RECOVER_PROCESS_ID_STRING, processInstance.getId()));
|
|
|
+ cmd.setCommandParam(JSONUtils.toJsonString(createCommandParams(processInstance)));
|
|
|
cmd.setExecutorId(processInstance.getExecutorId());
|
|
|
cmd.setCommandType(CommandType.RECOVER_TOLERANCE_FAULT_PROCESS);
|
|
|
cmd.setProcessInstancePriority(processInstance.getProcessInstancePriority());
|
|
@@ -2605,4 +2606,15 @@ public class ProcessServiceImpl implements ProcessService {
|
|
|
triggerRelationService.saveCommandTrigger(commandId, processInstanceId);
|
|
|
}
|
|
|
|
|
|
+ private Map<String, Object> createCommandParams(ProcessInstance processInstance) {
|
|
|
+ Map<String, Object> commandMap =
|
|
|
+ JSONUtils.parseObject(processInstance.getCommandParam(), new TypeReference<Map<String, Object>>() {
|
|
|
+ });
|
|
|
+ Map<String, Object> recoverFailoverCommandParams = new HashMap<>();
|
|
|
+ Optional.ofNullable(MapUtils.getObject(commandMap, CMD_PARAM_START_PARAMS))
|
|
|
+ .ifPresent(startParams -> recoverFailoverCommandParams.put(CMD_PARAM_START_PARAMS, startParams));
|
|
|
+ recoverFailoverCommandParams.put(CMD_PARAM_RECOVER_PROCESS_ID_STRING, processInstance.getId());
|
|
|
+ return recoverFailoverCommandParams;
|
|
|
+ }
|
|
|
+
|
|
|
}
|