配置
# 定义你的组件
你需要定义并实现一些组件,确保Spring会扫描到这些组件并注册进上下文
@Component("a")
public class ACmp extends NodeComponent {
@Override
public void process() {
//do your business
}
}
# Spring xml中的配置
<context:component-scan base-package="com.yomahub.flowtest.components" />
<bean id="springAware" class="com.yomahub.liteflow.util.SpringAware"/>
<bean class="com.yomahub.liteflow.spring.ComponentScaner"/>
<bean id="liteflowConfig" class="com.yomahub.liteflow.property.LiteflowConfig">
<property name="ruleSource" value="config/flow.xml"/>
<!-- 以下都不是必须的,都有默认值 -->
<property name="enable" value="true"/> <!-- liteflow是否开启,默认为true -->
<property name="printBanner" value="true"/> <!-- liteflow的banner是否开启,默认为true -->
<property name="zkNode" value="/lite-flow/flow.xml"/> <!-- zkNode的节点,只有使用zk作为配置源的时候才起作用 -->
<property name="slotSize" value="1024"/> <!-- slot的初始数量,默认为1024,此属性基本不用设置,因为满了之后会自动扩容 -->
<property name="mainExecutorWorks" value="64"/> <!-- FlowExecutor的execute2Future的线程数,默认为64 -->
<property name="mainExecutorClass" value="com.yomahub.liteflow.thread.LiteFlowDefaultMainExecutorBuilder"/> <!-- FlowExecutor的execute2Future的自定义线程池Builder,LiteFlow提供了默认的Builder -->
<property name="threadExecutorClass" value="com.yomahub.liteflow.thread.LiteFlowDefaultWhenExecutorBuilder"/> <!-- 并行节点的线程池Builder,LiteFlow提供了默认的Builder -->
<property name="whenMaxWaitSeconds" value="20"/> <!-- 异步线程最长的等待时间秒(只用于when),默认值为16 -->
<property name="whenMaxWorkers" value="16"/> <!-- 异步线程池最大线程数,默认为16 -->
<property name="whenQueueLimit" value="512"/> <!-- 异步线程池等待队列数,默认为512 -->
<property name="parseOnStart" value="true"/> <!-- 是否在启动的时候就解析规则,默认为true -->
<property name="retryCount" value="0"/> <!-- 全局重试次数,默认为0 -->
<property name="supportMultipleType" value="false"/> <!-- 是否支持不同类型的加载方式混用,默认为false -->
<property name="enableLog" value="true"/> <!-- 默认为false -->
<property name="queueLimit" value="100"/> <!-- 默认为200 -->
<property name="period" value="5000"/> <!-- 默认为300000,5分钟 -->
<property name="delay" value="5000"/> <!-- 默认为300000,5分钟 -->
</bean>
<bean id="flowExecutor" class="com.yomahub.liteflow.core.FlowExecutor">
<property name="liteflowConfig" ref="liteflowConfig"/>
</bean>
<!-- 如果上述enableLog为false,下面这段也可以省略 -->
<bean class="com.yomahub.liteflow.monitor.MonitorBus">
<property name="liteflowConfig" ref="liteflowConfig"/>
</bean>
# 规则文件的定义
同时,你得在resources的config/flow.xml
中如下配置:
<?xml version="1.0" encoding="UTF-8"?>
<flow>
<chain name="chain1">
<then value="a,b,c"/>
<when value="d,e"/>
</chain>
</flow>
Spring在启动时会自动装载规则文件。
帮助我们改善此文档 (opens new window)
上次更新: 2022/10/07, 00:22:18