mirror of
https://gitee.com/dolphinscheduler/DolphinScheduler.git
synced 2024-12-05 13:48:10 +08:00
[Improvement-6474] [MasterServer] schedule time for process instance optimization (#6477)
* [DS-6474][MasterServer] change to handle schedule time for process instance in WorkflowExecuteThread * delete all the valid tasks when complement data if id is not null * checkstyle Co-authored-by: caishunfeng <534328519@qq.com>
This commit is contained in:
parent
ea493534df
commit
e091801e05
@ -575,6 +575,15 @@ public class WorkflowExecuteThread implements Runnable {
|
||||
complementListDate = CronUtils.getSelfFireDateList(start, end, schedules);
|
||||
logger.info(" process definition code:{} complement data: {}",
|
||||
processInstance.getProcessDefinitionCode(), complementListDate.toString());
|
||||
|
||||
if (complementListDate.size() > 0 && Flag.NO == processInstance.getIsSubProcess()) {
|
||||
processInstance.setScheduleTime(complementListDate.get(0));
|
||||
processInstance.setGlobalParams(ParameterUtils.curingGlobalParams(
|
||||
processDefinition.getGlobalParamMap(),
|
||||
processDefinition.getGlobalParamList(),
|
||||
CommandType.COMPLEMENT_DATA, processInstance.getScheduleTime()));
|
||||
processService.updateProcessInstance(processInstance);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -125,7 +125,6 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.facebook.presto.jdbc.internal.guava.collect.Lists;
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||
@ -630,10 +629,8 @@ public class ProcessService {
|
||||
processInstance.setWarningGroupId(warningGroupId);
|
||||
processInstance.setDryRun(command.getDryRun());
|
||||
|
||||
// schedule time
|
||||
Date scheduleTime = getScheduleTime(command, cmdParam);
|
||||
if (scheduleTime != null) {
|
||||
processInstance.setScheduleTime(scheduleTime);
|
||||
if (command.getScheduleTime() != null) {
|
||||
processInstance.setScheduleTime(command.getScheduleTime());
|
||||
}
|
||||
processInstance.setCommandStartTime(command.getStartTime());
|
||||
processInstance.setLocations(processDefinition.getLocations());
|
||||
@ -878,13 +875,14 @@ public class ProcessService {
|
||||
runStatus = processInstance.getState();
|
||||
break;
|
||||
case COMPLEMENT_DATA:
|
||||
// delete all the valid tasks when complement data
|
||||
List<TaskInstance> taskInstanceList = this.findValidTaskListByProcessId(processInstance.getId());
|
||||
for (TaskInstance taskInstance : taskInstanceList) {
|
||||
taskInstance.setFlag(Flag.NO);
|
||||
this.updateTaskInstance(taskInstance);
|
||||
// delete all the valid tasks when complement data if id is not null
|
||||
if (processInstance.getId() != 0) {
|
||||
List<TaskInstance> taskInstanceList = this.findValidTaskListByProcessId(processInstance.getId());
|
||||
for (TaskInstance taskInstance : taskInstanceList) {
|
||||
taskInstance.setFlag(Flag.NO);
|
||||
this.updateTaskInstance(taskInstance);
|
||||
}
|
||||
}
|
||||
initComplementDataParam(processDefinition, processInstance, cmdParam);
|
||||
break;
|
||||
case REPEAT_RUNNING:
|
||||
// delete the recover task names from command parameter
|
||||
|
Loading…
Reference in New Issue
Block a user