-
Notifications
You must be signed in to change notification settings - Fork 5k
Description
i want to adjust program code for concurrence is disable, adjust follow place:
1、org/apache/dolphinscheduler/dao/mapper/ProcessInstanceMapper.java
add:
Long queryByProcessDefineNameRunningCnts(@param("processDefinitionId") int processDefinitionId,@param("states") int[] statusArray);
2、org/apache/dolphinscheduler/dao/mapper/ProcessInstanceMapper.xml
add:
SELECT count()
FROM t_ds_process_instance instance
WHERE instance.process_definition_id=#{processDefinitionId}
and instance.state in
#{i}
3、org/apache/dolphinscheduler/dao/ProcessDao.java
in private ProcessInstance constructProcessInstance(...) Add:
/
*
* TODO:bobin 2020-03-30 增加串行
*
*/
if (command!=null) {
logger.debug(String.format("command type is %s",StringUtils.isNoneBlank(commandType.getDescp())));
}
if (commandType==CommandType.SCHEDULER) {
//logger.info(String.format("process instance %s",processDefinition.toString()));
if (processDefinition.getGlobalParamMap()!=null && processDefinition.getGlobalParamMap().containsKey("boying-seq"))
{
long cnt = processInstanceMapper.queryByProcessDefineNameRunningCnts(command.getProcessDefinitionId(),
new int[]{ExecutionStatus.RUNNING_EXEUTION.getCode(), ExecutionStatus.WAITTING_THREAD.getCode(), ExecutionStatus.WAITTING_DEPEND.getCode()}
).longValue();
logger.debug(String.format("process defineid:%d & running instance count %d",command.getProcessDefinitionId(),cnt));
if (cnt > 0)
return null;
}
}
}
