• LiteFlow v2.9.4发布!一款能让你系统支持热更新,编排,脚本编写逻辑的国产规则引擎框架


    前言

    上海的天气降温让人猝不及防,但是我们的迭代速度却井然有序。

    今天我们带来了LiteFlow v2.9.4版本。

    我们每次的发布的issue有很大一部分依托于我们的使用者社区,社区人越来越多。我看到了使用者在使用过程中遇到的问题,也收集了很多使用过程中很有意思的建议。这些也正是我们每一次迭代的方向。谢谢那么多的小伙伴的支持和建议,LiteFlow一直会是一个以社区为驱动的开源框架。

    LiteFlow是一个开源编排式规则引擎,能够让你的系统逻辑任意编排,使用脚本书写逻辑,所有的逻辑和规则均可热变更。设计系统和重构系统的神器。

    如果你是第一次知道这个项目,可以去官网或相关的主页进行了解:

    项目官网:

    liteflow.yomahub.com

    gitee托管仓库:

    gitee.com/dromara/lit…

    github托管仓库:

    github.com/dromara/lit…

    v2.9.4介绍

    新版本我们依旧依托于社区,一共完成了14个issue。

    其中80%的issue来自于社区使用者。

    2.9.4版本完全兼容2.9.3版本,可以无缝升级。

    新的脚本引擎

    鉴于之前社区有人反应LiteFlow提供的Javascript脚本引擎是基于jdk的,而JDK的Javascript引擎只支持到ES5规范,且不支持Java 17。

    所以这次我们新增了一个Javascript引擎:GraalJs。支持ES6规范,且支持Java 8~17。

    当然老的引擎我们还是保留,如果是简单的js语法,你依旧可以用老的引擎。

    关于这块详情请参考官网的选择脚本语言章节。

    提供规则验证接口

    虽然LiteFlow在启动时会去编译所有的规则,如果有错也会详细报出,但是在更改脚本前,使用者可能不太确信自己的规则写的有没有问题。所以在社区内,有人提出了希望增加一个验证规则的接口。

    那这次我们也提供了相应的接口。详情请参考官网的验证规则章节。

    Zk和Etcd支持局部刷新机制

    如果你使用zk或者Etcd,你在zk和etcd里更改了规则,会自动推送到相应的应用进行无感自动刷新。

    但是之前的实现模式是全部刷新,即不管你改了哪个规则,所有的规则刷新一遍。虽然LiteFlow刷新速度非常快速,但是这种实现模式还是不够优雅。

    这次我们实现了局部刷新,即你改变哪个即刷新哪个。

    声明式组件的二次动态代理问题

    在社区内,我们也收到了许多使用声明式组件特性小伙伴们的反馈,在声明式组件上使用类似事务标注等需要动态代理的特性时,LiteFlow的声明式组件会报错。

    经过核验,我们发现LiteFlow之前漏考虑了二次动态代理的问题,这次我们修复了。

    其他修复

    在新版本中,我们修复其他issue也有很多,包括脚本对元数据取值的bug,@ScriptBean标注所带来的一些小问题,脚本异常处理的优化等等。

    完整更新列表

    1. 特性 #I61XYZ 额外提供GraalJs引擎,在js上多一个选择
    2. https://gitee.com/dromara/liteFlow/issues/I61XYZ
    3. 增强 #I63C31 zk,etcd支持只刷新改变的部分
    4. https://gitee.com/dromara/liteFlow/issues/I63C31
    5. 增强 #I61EMZ 增加一个验证EL规则的api,供检查之用
    6. https://gitee.com/dromara/liteFlow/issues/I61EMZ
    7. 增强 #I633VH 建议FlowBus提供批量移除子链方法
    8. https://gitee.com/dromara/liteFlow/issues/I633VH
    9. 增强 #I61RI0 希望可以开放对 QLExpress 的一些操作!
    10. https://gitee.com/dromara/liteFlow/issues/I61RI0
    11. 增强 #I622I9 内部代码规范ChainName和ChainId问题
    12. https://gitee.com/dromara/liteFlow/issues/I622I9
    13. 增强 #I61LYN 规范问题和 不必要的import 常量提取等
    14. https://gitee.com/dromara/liteFlow/issues/I61LYN
    15. 修复 #I62PV3 声明式组件如果把LiteflowMethod定义在父类中,不执行
    16. https://gitee.com/dromara/liteFlow/issues/I62PV3
    17. 修复 #I62DT1 如果对上下文标注@ScriptBean,那么脚本和java中拿到的上下文并不是同一个上下文
    18. https://gitee.com/dromara/liteFlow/issues/I62DT1
    19. 修复 #I61H49 脚本异常希望可以抛出到response
    20. https://gitee.com/dromara/liteFlow/issues/I61H49
    21. 修复 #I631ZF groovy脚本接入时,自定义异常抛出后被组件失败异常覆盖
    22. https://gitee.com/dromara/liteFlow/issues/I631ZF
    23. 修复 #I61HIO 方法级的组件声明,然后在方法上打 Spring 的事务注解 @Transactional,会报错
    24. https://gitee.com/dromara/liteFlow/issues/I61HIO
    25. 修复 #I62CB8 脚本与java交互取元数据的问题
    26. https://gitee.com/dromara/liteFlow/issues/I62CB8
    27. 修复 #I61UZ6 switch选择组件使用标签在同一组件时固定选到最后一个
    28. https://gitee.com/dromara/liteFlow/issues/I61UZ6
    29. 复制代码

    社区

    LiteFlow的社区是一个异常活跃的开源社区,这里有许多的开源大佬,技术大牛,群内的小伙伴也很乐意帮你去回答问题。

     

  • 相关阅读:
    soft reboot
    SpringSecurity框架
    vue+css动画 实现文字的上下轮播切换
    窗口信息保存
    AI人工智能(第一天)
    口袋参谋:只用一招,提前规避差评!请看具体操作步骤
    今日增长工具精选 | 三款你不知道但很实用的运营工具
    视频格式说明
    vue3 引入element-plus
    在Winform分页控件中集成保存用户列表显示字段及宽度调整设置
  • 原文地址:https://blog.csdn.net/BASK2311/article/details/128145374