通用规则引擎——Rush(二)如何使用lua脚本编写规则
原文中文,约3800字,阅读约需10分钟。
📝
内容提要
本文介绍了使用rush中的LuaRuntime实现lua脚本的同步和异步运行,包括从文件中加载代码和自定义脚本解析。作者呼吁小伙伴参与讨论。
🎯
关键要点
-
通用规则引擎在处理特殊业务时存在局限性,rush支持Lua脚本。
-
LuaRuntime是Lua脚本的运行时,支持同步和异步调用。
-
LuaRuntime的性能测试结果显示其运行时间在10.731到10.970微秒之间。
-
Lua脚本需要返回检查结果,包括代码、状态和执行逻辑的函数。
-
可以通过规则形式声明Lua脚本,并在运行时声明全局变量。
-
LuaRuntime在异步中运行,但仍然是单线程工作。
-
可以从文件中加载Lua代码,需指定文件路径。
-
自定义脚本解析器可以通过实现特定trait来扩展LuaRuntime的功能。
-
远程加载脚本存在安全问题,建议用户自行实现。
-
每个LuaRuntime对应一个线程,多个LuaRuntime可以并行工作,但不能共享数据。
-
未来计划支持运行池以优化资源消耗,特别是处理大量规则脚本时。
-
实现Lua脚本作为规则执行的过程需要深入思考,欢迎大家参与讨论。
🏷️