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

news2025/1/11 17:07:51

前言

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

今天我们带来了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标注所带来的一些小问题,脚本异常处理的优化等等。

完整更新列表

特性 #I61XYZ 额外提供GraalJs引擎,在js上多一个选择

https://gitee.com/dromara/liteFlow/issues/I61XYZ

增强 #I63C31 zk,etcd支持只刷新改变的部分

https://gitee.com/dromara/liteFlow/issues/I63C31

增强 #I61EMZ 增加一个验证EL规则的api,供检查之用

https://gitee.com/dromara/liteFlow/issues/I61EMZ

增强 #I633VH 建议FlowBus提供批量移除子链方法

https://gitee.com/dromara/liteFlow/issues/I633VH

增强 #I61RI0 希望可以开放对 QLExpress 的一些操作!

https://gitee.com/dromara/liteFlow/issues/I61RI0

增强 #I622I9 内部代码规范ChainName和ChainId问题

https://gitee.com/dromara/liteFlow/issues/I622I9

增强 #I61LYN 规范问题和 不必要的import 常量提取等

https://gitee.com/dromara/liteFlow/issues/I61LYN

修复 #I62PV3 声明式组件如果把LiteflowMethod定义在父类中,不执行

https://gitee.com/dromara/liteFlow/issues/I62PV3

修复 #I62DT1 如果对上下文标注@ScriptBean,那么脚本和java中拿到的上下文并不是同一个上下文

https://gitee.com/dromara/liteFlow/issues/I62DT1

修复 #I61H49 脚本异常希望可以抛出到response

https://gitee.com/dromara/liteFlow/issues/I61H49

修复 #I631ZF groovy脚本接入时,自定义异常抛出后被组件失败异常覆盖

https://gitee.com/dromara/liteFlow/issues/I631ZF

修复 #I61HIO 方法级的组件声明,然后在方法上打 Spring 的事务注解 @Transactional,会报错

https://gitee.com/dromara/liteFlow/issues/I61HIO

修复 #I62CB8 脚本与java交互取元数据的问题

https://gitee.com/dromara/liteFlow/issues/I62CB8

修复 #I61UZ6 switch选择组件使用标签在同一组件时固定选到最后一个

https://gitee.com/dromara/liteFlow/issues/I61UZ6
复制代码

社区

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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/53985.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Java实战】这样写SQL语句性能嘎嘎好

目录 一、前言 二、SQL语句 1.【强制】不要使用 count(列名) 或 count(常量) 来替代 count(*),count(*) 是 SQL92 定义的标准统计行数的语法,跟数据库无关,跟 NULL 和非 NULL 无关。 2.【强制】count(distinct col) 计算该列除 NULL 之外的…

如何实现网站首页变为黑白色?

某些时候,网站会根据要求将页面调成黑白色,一开始我还以为是将连夜把图片和文字都搞成黑白色,但是转念一想,像推送产品的京东、淘宝,以及展示up内容的B站、CSDN等,刷新之后可能展示的内容均不同&#xff0c…

从上帝视角认识SpringMVC预览

前言 SpringMVC提供了很多可拓展的组件,例如:参数解析器、拦截器、异常处理器等等。但是如果想要理解/找到这些组件工作的位置/时机,很多时候总是容易迷失在其层层调用的源码之中。因此才想从上帝视角来剖析它。而所谓上帝视角,就…

[附源码]Python计算机毕业设计Django海南琼旅旅游网

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

22.12.1打卡 漫步校园 记忆化搜索

题目里很显然只走最短路, 直接用bfs从终点到起点搜一遍将每一步到终点所需要的最短的时间存在一个dis数组中, 然后你就会发现原来的地图变成了这样 上面是地图下面是dis数组, 再看看经典记忆化搜索模板题滑雪的地图 对的, 非常地相似, 接下来的操作和滑雪基本一样, 只不过起点是…

SQL创建新的输出字段

SQL创建新的输出字段1、准备数据2、对单个字段或者多个字段进行数值计算3、数值计算4、字段拼接5、字段使用别名6、 CASE WHEN逻辑转换case when 语法一case when 语法二case when 注意点查询的值可以为任何值(例如可以: select *)可以重命名…

Docker 快速安装Jenkins完美教程 (亲测采坑后详细步骤)(转)

转载至:https://www.cnblogs.com/fuzongle/p/12834080.html Docker 快速安装Jenkins完美教程 (亲测采坑后详细步骤) Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作&#xff0…

组织:阿米巴-事业部-成员公司

昨天有朋友讲到阿米巴-内部交易的成本与效率、讲到乌合之众山头团伙合并财报。昨天也都谈到方向大致正确品质大致不错极低规模成本、方向老钻错牛角尖品质精密高成本。我这篇文章就是:群中单句交流-朋友圈提炼段落-公众号整理成文章,这么来的。阿米巴&am…

从零开始带你实现一套自己的CI/CD(一)Jenkins

目录一、简介二、环境准备2.1 安装Docker和Docker-compose2.2 远程仓库Github/Gitee/GitLab2.3 部署Jenkins三、配置Jenkins3.1 Jenkins配置源码拉取地址3.2 Jenkins配置Maven构建代码3.2.1 准备jdk3.2.2 配置Maven3.2.3 Jenkins配置JDK&Maven并保存3.3 配置Jenkins任务构建…

【日常折腾】重新安装Windows7,做好ghost备份,迁移主目录,日常软件office,chrome,搜狗输入法,电脑管家,一键ghost进行备份。

目录前言1,关于Windows2,电脑起码分两个盘c、d盘3,因为主目录切换了,相关的其他人软件的数据都会迁移过去4,安装office软件3件套,不要全家桶5,安装电脑管家,还是选择腾讯吧6&#xf…

17条卢松松近期言论汇总

我是卢松松,点点上面的头像,欢迎关注我哦! 本文汇集了前段时间卢松松写的段子,有心情感悟、工作感悟、做直播带货、创业的感悟。关注互联网、草根创业者的朋友可以看看! (1) 人最舒服的是什么时候呢?我认为&#xff…

RabbitMQ的工作模式

一.RabbitMQ的一些知识 1.消息属性 RabbitMQ是基于AMQP消息传输协议来实现的消息中间件;类似HTTP有header和body两部分数据,Message是RabbitMQ中的消息体概念。 Message由Properties和Body组成,前者是一些元信息,如消息的优先级…

【LeetCode】1769.移动所有球到每个盒子所需的最小操作数

题目描述 有 n 个盒子。给你一个长度为 n 的二进制字符串 boxes ,其中 boxes[i] 的值为 ‘0’ 表示第 i 个盒子是 空 的,而 boxes[i] 的值为 ‘1’ 表示盒子里有 一个 小球。 在一步操作中,你可以将 一个 小球从某个盒子移动到一个与之相邻的…

整理Ubuntu深度学习服务器初始化操作

前言 这两年总是换服务器,每次配置都挺麻烦的要搜一堆东西,干脆直接整理一下供自己以后参考。 版本说明 Ubuntu 20.04 桌面版 系统配置 配置SSH 安装ssh sudo apt update sudo apt install openssh-server检查ssh状态 sudo systemctl status ssh…

js将图片或者文件转成base64格式的两种方法

场景一,项目assets资源里面的图片本地图片,重点如下 需要了解 canvas的基本操作,canvas.toDataURL 方法 HTMLCanvasElement.toDataURL() 方法返回一个包含图片展示的 data URI 。可以使用 type 参数其类型,默认为 PNG 格式。图片…

session和cookie的区别

文章目录一概念理解1、无状态的HTTP协议:2、会话(Session)跟踪:二cookie1、会话Cookie和持久Cookie2、Cookie具有不可跨域名性三. Session1、两个问题:2、session的创建:3、禁用cookie:四. 总结…

GIS工具maptalks开发手册(二)01-02之GeoJSON转化为Geometry——渲染点

GIS工具maptalks开发手册(二)01-02之GeoJSON转化为Geometry——渲染点 效果 1、html官方版 <!DOCTYPE html> <html> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1"> <t…

c实现mp4解封装

文章目录前序MP4简介MP4的定义MP4的封装格式Box类型详解Box格式ftyp boxmvhd boxtkhd boxhdlr boxmdat boxstbl boxstsd boxstco boxstsc boxstsz boxstts boxstss boxdemuxer demo的实现(视频数据部分)总结&#xff1a;工具介绍源码参考前序 最近为了更加深入了解音视频demux…

nginx源码分析--基数树

typedef struct {ngx_radix_node_t *root;ngx_pool_t *pool;ngx_radix_node_t *free;char *start;size_t size; } ngx_radix_tree_t;预备知识 1.基数树也是一种二叉查找树,目前官方模块中仅geo模块使用了基数树.2.ngx_radix_tree_t基数树要求…

微服务框架 SpringCloud微服务架构 8 Gateway 网关 8.7 网关的cors 跨域配置

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式&#xff0c;系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 SpringCloud微服务架构 文章目录微服务框架SpringCloud微服务架构8 Gateway 网关8.7 网关的cors 跨域配置8.7.1 跨域问题处理8.7.2 案例8.7.…