简要说明
笔者刚看到这里感觉很奇怪,因为当processInstance第一次执行的时候,如果不是ComplementData 类型的。initTaskQueue 方法基本上只执行clear方法。为什么写那么多
在api服务中执行任务流程生成任务实例时,是生成command插入表中,在master中将command转换成processInstance,此时执行状态可能是WorkflowExecutionStatus.SERIAL_WAIT,此时就不是RUNNING_EXECUTION 状态,可能是专门为这种类型准备的。
private void initTaskQueue() {
taskFailedSubmit = false;
activeTaskProcessorMaps.clear();
dependFailedTaskMap.clear();
completeTaskMap.clear();
errorTaskMap.clear();
if (!isNewProcessInstance()) {
List<TaskInstance> validTaskInstanceList = processService.findValidTaskListByProcessId(processInstance.getId());
for (TaskInstance task : validTaskInstanceList) {
if (validTaskMap.containsKey(task.getTaskCode())) {
int oldTaskInstanceId = validTaskMap.get(task.getTaskCode());
TaskInstance oldTaskInstance = taskInstanceMap.get(oldTaskInstanceId