配置

组件的定义

在依赖了以上jar包后。 你需要定义并实现一些组件,确保SpringBoot会扫描到这些组件并注册进上下文

  1. @Component("a")
  2. public class ACmp extends NodeComponent {
  3. @Override
  4. public void process() {
  5. //do your business
  6. }
  7. }

SpringBoot配置文件

然后,在你的SpringBoot的application.properties或者application.yml里添加配置(这里以properties为例,yml也是一样的)

  1. liteflow.rule-source=config/flow.xml
  2. #-----------------以下非必须-----------------
  3. #liteflow是否开启,默认为true
  4. liteflow.enable=true
  5. #zkNode的节点,只有使用zk作为配置源的时候才起作用
  6. liteflow.zk-node=/lite-flow/flow
  7. #slot的数量,默认值为1024
  8. liteflow.slot-size=1024
  9. #异步线程最长的等待时间秒(只用于when),默认值为15
  10. liteflow.when-max-wait-second=15
  11. #异步线程池最大线程数,默认为4
  12. liteflow.when-max-workers=4
  13. #异步线程池等待队列数,默认为512
  14. liteflow.when-queue-limit=512
  15. #是否在启动的时候就解析规则,默认为true
  16. liteflow.parse-on-start=true
  17. #全局重试次数,默认为0
  18. liteflow.retry-count=0
  19. #是否开启监控log打印,默认值为false
  20. liteflow.monitor.enable-log=true
  21. #监控队列存储大小,默认值为200
  22. liteflow.monitor.queue-limit=300
  23. #监控一开始延迟多少执行,默认值为300000毫秒,也就是5分钟
  24. liteflow.monitor.delay=10000
  25. #监控日志打印每过多少时间执行一次,默认值为300000毫秒,也就是5分钟
  26. liteflow.monitor.period=10000

规则文件的定义

同时,你得在resources下的config/flow.xml中定义规则:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <flow>
  3. <chain name="chain1">
  4. <then value="a,b,c"/>
  5. <when value="d,e"/>
  6. </chain>
  7. </flow>

SpringBoot在启动时会自动装载规则文件。