LiteFlow是一个开源编排式规则引擎,能够让你的系统逻辑任意编排,可选用脚本书写逻辑,支持多达8种脚本语言,支持丰富的第三方存储的支持,所有的逻辑和规则均可热变更。设计系统和重构系统的神器。
LiteFlow是Gitee的高star项目,截止到发此文章的时候,Gitee star超过6.2k,Github则拥有2.8Kstar。
同时LiteFlow也是国内优秀的社区驱动型开源项目,开源3年多,目前已经被各大一线公司应用在核心系统上,据不完全统计,国内将近千余家公司都在使用。特性以及支持度都非常好。社区人数超过5000人。测试用例1800多个,质量有保障。
如果你是第一次知道这个项目,可以去官网或相关的主页进行了解:
项目官网:https://liteflow.cc
以下文章LiteFlow简称为LF。
前言
LF 2.12.2.1发布啦!
肯定有小伙伴会奇怪,这次怎么最后还有个点1呢。因为2.12.2
本来已经发布,但是这期间社区里有个同学用到了声明式的异常事件监听功能,发现有一个bug并立即上报了。我在查清楚原委之后觉得这应该被尽快修复,所以在2.12.2
后面又打了个补丁版本。
但是这并不代表2.12.2
就不能用,如果你没有用到声明式的异常事件监听功能,那么2.12.2
和2.12.2.1
是完全一致的。
这次的2.12.2.1
版本没有带来大的特性,算是常规性迭代,但是也带了很多功能的增强和一些bug的修复。这些issue都来自于社区。
所以更加说明了我们是非常重视社区的。
这次版本带来了13个issue的更新,包括8个增强和5个修复。接下来我会挑一些来介绍。
决策路由支持刷新
决策路由自从2.12.0推出以来,我们一直在对决策路由做一些优化。比如2.12.1版本支持了数据库中使用决策路由,以及决策路由的命名空间。这次我们对决策路由的调整是:支持了决策路由的刷新。
如果决策路由配置在数据库中,并开启了轮询,那么改变等待轮询即可刷新决策路由。如果没有开启轮询,你现在可以通过调用以下api来完成刷新:
FlowBus.reloadChain("chain1", "THEN(a, b, c)", "AND(r1, r2)");
是的,它是一个重载方法,它还有一个两个参数的方法,那是单独刷新规则的,现在它的重载可以连带规则和路由一起刷新了。
SQL插件的轮询逻辑优化
在这之前,一直有社区里的同学反映,在使用数据库存储规则和脚本时,单更新脚本和单更新规则,自动刷新都正常,但是同时更新了规则和脚本,刷新就会一直失效。
我们这次修复了这个问题。现在无论你怎么更新,自动刷新都会生效。
上下文支持超类获取
这也是社区一位使用者提出的建议,有些上下文的设计是有超类的。在公共组件里希望可以用超类去获取上下文。这样更利于公共组件的定义。
这次我们支持了这一形式的获取。你的上下文既可以用本身的Class获取,也可以用它的超类去获取。
EL的构建现在支持retry属性的构建了
如果经常用动态代码构建规则特性的小伙伴应该知道,LF里有个ELBus对象,是可以很方便的通过代码来构建出规则的。
之前不支持retry属性,这次我们不仅支持了retry。而且我们把ELBus的核心代码部分重构了一遍,更加合理,更加高效。
全部更新列表
增强 #IAE5PA FlowBus中提供刷新route的api方法
https://gitee.com/dromara/liteFlow/issues/IAE5PA
增强 #IACEH9 SQL插件中的轮询逻辑优化
https://gitee.com/dromara/liteFlow/issues/IACEH9
增强 #IACEGB 上下文超类判断的获取和转换
https://gitee.com/dromara/liteFlow/issues/IACEGB
增强 #IA9QBG el-builder的部分重构
https://gitee.com/dromara/liteFlow/issues/IA9QBG
增强 #IA9NOI ELBus中增加对retry构建的api支持
https://gitee.com/dromara/liteFlow/issues/IA9NOI
增强 #IA6E3Q redis配置的时候可以指定Redisson的链接数,默认的connections太多了
https://gitee.com/dromara/liteFlow/issues/IA6E3Q
增强 #IA8B3T 插件 throw Exception 会丢失堆栈
https://gitee.com/dromara/liteFlow/issues/IA8B3T
增强 #IABK5C 校验 EL 表达式,获取校验失败原因
https://gitee.com/dromara/liteFlow/issues/IABK5C
修复 #IA5PAK ELBus串行编排不支持对每个节点进行超时配置
https://gitee.com/dromara/liteFlow/issues/IA5PAK
修复 #IAD2HH 希望支持执行节点日志与监控日志的分开管理
https://gitee.com/dromara/liteFlow/issues/IAD2HH
修复 #IACSQ8 liteflow-solon-plugin 启动报错
https://gitee.com/dromara/liteFlow/issues/IACSQ8
修复 #IADIXE 使用迭代循环组件,下游getCurrLoopObj()获取为null
https://gitee.com/dromara/liteFlow/issues/IADIXE
修复 #IAFKQV 声明式的onError方法取不到Exception
https://gitee.com/dromara/liteFlow/issues/IAFKQV