LiteFlow 按照規則配置進行復雜流轉
阿新 • • 發佈:2021-11-03
LiteFlow
使用LiteFlow,你需要去把複雜的業務邏輯按程式碼片段拆分成一個個小元件,並定義一個規則流程配置。這樣,所有的元件,就能按照你的規則配置去進行復雜的流轉。
依賴
LiteFlow提供了liteflow-spring-boot-starter依賴包,提供自動裝配功能
<dependency> <groupId>com.yomahub</groupId> <artifactId>liteflow-spring-boot-starter</artifactId> <version>2.6.3</version> </dependency>
元件的定義
在依賴了以上jar包後。 需要定義並實現一些元件,確保SpringBoot會掃描到這些元件並註冊進上下文
import com.yomahub.liteflow.core.NodeComponent; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @Slf4j @Component("a") public class ACmp extends NodeComponent { @Override public void process() {//do your business log.info("ACmp process"); } }
SpringBoot配置檔案
liteflow: rule-source: config/flow.xml #-----------------以下非必須----------------- enable: true #liteflow是否開啟,預設為true monitor: delay: 10000 #監控一開始延遲多少執行,預設值為300000毫秒,也就是5分鐘 enable-log: true #是否開啟監控log列印,預設值為false period:10000 #監控日誌列印每過多少時間執行一次,預設值為300000毫秒,也就是5分鐘 queue-limit: 300 #監控佇列儲存大小,預設值為200 parse-on-start: true #是否在啟動的時候就解析規則,預設為true retry-count: 0 #全域性重試次數,預設為0 slot-size: 1024 #slot的數量,預設值為1024 when-max-wait-second: 15 #非同步執行緒最長的等待時間秒(只用於when),預設值為15 when-max-workers: 4 #非同步執行緒池最大執行緒數,預設為4 when-queue-limit: 512 #非同步執行緒池等待佇列數,預設為512 zk-node: /lite-flow/flow #zkNode的節點,只有使用zk作為配置源的時候才起作用
規則檔案的定義
同時,在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>
官方文件:
https://yomahub.com/liteflow/docs/