package com.yomahub.liteflow.springboot; import com.yomahub.liteflow.enums.ParseModeEnum; import org.springframework.boot.context.properties.ConfigurationProperties; import java.util.Map; import java.util.concurrent.TimeUnit; /** * 执行流程主要的参数类 * * @author Bryan.Zhang */ @ConfigurationProperties(prefix = "liteflow", ignoreUnknownFields = true) public class LiteflowProperty { // 是否装配liteflow private boolean enable; // 流程定义资源地址 private String ruleSource; // 流程资源扩展数据,String格式 private String ruleSourceExtData; // 流程资源扩展数据,Map格式 private Map ruleSourceExtDataMap; // slot的数量 private int slotSize; // FlowExecutor的execute2Future的线程数 private int mainExecutorWorks; // FlowExecutor的execute2Future的自定义线程池 private String mainExecutorClass; // 并行线程执行器class路径 private String threadExecutorClass; // 异步线程最大等待描述 @Deprecated private int whenMaxWaitSeconds; private int whenMaxWaitTime; private TimeUnit whenMaxWaitTimeUnit; // 异步线程池最大线程数 private int whenMaxWorkers; // 异步线程池最大队列数量 private int whenQueueLimit; // 异步线程池是否隔离 private boolean whenThreadPoolIsolate; // 解析模式,一共有三种,具体看其定义 private ParseModeEnum parseMode; // 这个属性为true,则支持多种不同的类型的配置 // 但是要注意,不能将主流程和子流程分配在不同类型配置文件中 private boolean supportMultipleType; // 重试次数 @Deprecated private int retryCount; // 是否打印liteflow banner private boolean printBanner; // 节点执行器class全名 private String nodeExecutorClass; // requestId 生成器 private String requestIdGeneratorClass; // 是否打印执行过程中的日志 private boolean printExecutionLog; // 规则文件/脚本文件变更监听 private boolean enableMonitorFile; private String parallelLoopExecutorClass; //使用默认并行循环线程池时,最大线程数 private int parallelMaxWorkers; //使用默认并行循环线程池时,最大队列数 private int parallelQueueLimit; // 是否启用组件降级 private boolean fallbackCmpEnable; //是否快速加载规则,如果快速加载规则意味着不用copyOnWrite机制了 private boolean fastLoad; //是否检查节点存在 private boolean checkNodeExists; //脚本特殊设置选项 private Map scriptSetting; public boolean isEnableMonitorFile() { return enableMonitorFile; } public void setEnableMonitorFile(boolean enableMonitorFile) { this.enableMonitorFile = enableMonitorFile; } public boolean isEnable() { return enable; } public void setEnable(boolean enable) { this.enable = enable; } public String getRuleSource() { return ruleSource; } public void setRuleSource(String ruleSource) { this.ruleSource = ruleSource; } public int getSlotSize() { return slotSize; } public void setSlotSize(int slotSize) { this.slotSize = slotSize; } @Deprecated public int getWhenMaxWaitSeconds() { return whenMaxWaitSeconds; } @Deprecated public void setWhenMaxWaitSeconds(int whenMaxWaitSeconds) { this.whenMaxWaitSeconds = whenMaxWaitSeconds; } public int getWhenMaxWorkers() { return whenMaxWorkers; } public void setWhenMaxWorkers(int whenMaxWorkers) { this.whenMaxWorkers = whenMaxWorkers; } public int getWhenQueueLimit() { return whenQueueLimit; } public void setWhenQueueLimit(int whenQueueLimit) { this.whenQueueLimit = whenQueueLimit; } public ParseModeEnum getParseMode() { return parseMode; } public void setParseMode(ParseModeEnum parseMode) { this.parseMode = parseMode; } public boolean isSupportMultipleType() { return supportMultipleType; } public void setSupportMultipleType(boolean supportMultipleType) { this.supportMultipleType = supportMultipleType; } @Deprecated public int getRetryCount() { return retryCount; } @Deprecated public void setRetryCount(int retryCount) { this.retryCount = retryCount; } public boolean isPrintBanner() { return printBanner; } public void setPrintBanner(boolean printBanner) { this.printBanner = printBanner; } public String getThreadExecutorClass() { return threadExecutorClass; } public void setThreadExecutorClass(String threadExecutorClass) { this.threadExecutorClass = threadExecutorClass; } public String getNodeExecutorClass() { return nodeExecutorClass; } public void setNodeExecutorClass(String nodeExecutorClass) { this.nodeExecutorClass = nodeExecutorClass; } public int getMainExecutorWorks() { return mainExecutorWorks; } public void setMainExecutorWorks(int mainExecutorWorks) { this.mainExecutorWorks = mainExecutorWorks; } public String getMainExecutorClass() { return mainExecutorClass; } public void setMainExecutorClass(String mainExecutorClass) { this.mainExecutorClass = mainExecutorClass; } public boolean isPrintExecutionLog() { return printExecutionLog; } public void setPrintExecutionLog(boolean printExecutionLog) { this.printExecutionLog = printExecutionLog; } public String getRequestIdGeneratorClass() { return requestIdGeneratorClass; } public void setRequestIdGeneratorClass(String requestIdGeneratorClass) { this.requestIdGeneratorClass = requestIdGeneratorClass; } public String getRuleSourceExtData() { return ruleSourceExtData; } public void setRuleSourceExtData(String ruleSourceExtData) { this.ruleSourceExtData = ruleSourceExtData; } public Map getRuleSourceExtDataMap() { return ruleSourceExtDataMap; } public void setRuleSourceExtDataMap(Map ruleSourceExtDataMap) { this.ruleSourceExtDataMap = ruleSourceExtDataMap; } public int getWhenMaxWaitTime() { return whenMaxWaitTime; } public void setWhenMaxWaitTime(int whenMaxWaitTime) { this.whenMaxWaitTime = whenMaxWaitTime; } public TimeUnit getWhenMaxWaitTimeUnit() { return whenMaxWaitTimeUnit; } public void setWhenMaxWaitTimeUnit(TimeUnit whenMaxWaitTimeUnit) { this.whenMaxWaitTimeUnit = whenMaxWaitTimeUnit; } public String getParallelLoopExecutorClass() { return parallelLoopExecutorClass; } public void setParallelLoopExecutorClass(String parallelLoopExecutorClass) { this.parallelLoopExecutorClass = parallelLoopExecutorClass; } public int getParallelMaxWorkers() { return parallelMaxWorkers; } public void setParallelMaxWorkers(int parallelMaxWorkers) { this.parallelMaxWorkers = parallelMaxWorkers; } public int getParallelQueueLimit() { return parallelQueueLimit; } public void setParallelQueueLimit(int parallelQueueLimit) { this.parallelQueueLimit = parallelQueueLimit; } public boolean isFallbackCmpEnable() { return fallbackCmpEnable; } public void setFallbackCmpEnable(boolean fallbackCmpEnable) { this.fallbackCmpEnable = fallbackCmpEnable; } public boolean isWhenThreadPoolIsolate() { return whenThreadPoolIsolate; } public void setWhenThreadPoolIsolate(boolean whenThreadPoolIsolate) { this.whenThreadPoolIsolate = whenThreadPoolIsolate; } public boolean isFastLoad() { return fastLoad; } public void setFastLoad(boolean fastLoad) { this.fastLoad = fastLoad; } public boolean isCheckNodeExists() { return checkNodeExists; } public void setCheckNodeExists(boolean checkNodeExists) { this.checkNodeExists = checkNodeExists; } public Map getScriptSetting() { return scriptSetting; } public void setScriptSetting(Map scriptSetting) { this.scriptSetting = scriptSetting; } }