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

继续阅读