通用规则引擎——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脚本作为规则执行的过程需要深入思考,欢迎大家参与讨论。
➡️