sendTaskTimeoutAlert
waitTaskQuit
submitWaitComplete
MasterBaseTaskExecThread
@Override public Boolean call() throws Exception { this.processInstance = processService.findProcessInstanceById(taskInstance.getProcessInstanceId()); return submitWaitComplete(); }
/** * submit task to execute * @param taskInstance task instance * @return TaskInstance */ private TaskInstance submitTaskExec(TaskInstance taskInstance) { MasterBaseTaskExecThread abstractExecThread = null; if(taskInstance.isSubProcess()){ abstractExecThread = new SubProcessTaskExecThread(taskInstance); }else if(taskInstance.isDependTask()){ abstractExecThread = new DependentTaskExecThread(taskInstance); }else if(taskInstance.isConditionsTask()){ abstractExecThread = new ConditionsTaskExecThread(taskInstance); }else { abstractExecThread = new MasterTaskExecThread(taskInstance); } Future<Boolean> future = taskExecService.submit(abstractExecThread); activeTaskNode.putIfAbsent(abstractExecThread, future); return abstractExecThread.getTaskInstance(); }
submitStandByTask
runProcess
private void executeProcess() throws Exception { prepareProcess(); runProcess(); endProcess(); }