Skip to content

[QUESTION] about concurrency processinstance  #2352

@boying52

Description

@boying52

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;
            }

        }


    }

image

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requested

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions