动态刷新规则链
可以在运行时动态更新规则链,改变规则链的行为和业务逻辑,实现不停机更新和扩展业务逻辑。
- 更新整条规则链:入参是完整的规则链 DSL(不是增量片段),未包含的节点和连接会被删除,修改后立即生效,正在处理的消息不受影响:
err := ruleEngine.ReloadSelf([]byte(ruleFile))
1
- 只更新规则链中的某个节点(其余节点保持运行中的状态和配置不变):
//更新根规则链下ID为s1的节点,第一个入参为父节点ID,根链下的节点传 types.EmptyRuleNodeId
ruleEngine.ReloadChild(types.EmptyRuleNodeId, types.RuleNodeId{Id: "s1"}, []byte(modifyNodeFile))
1
2
2
提示
使用 RuleGo-Server 的用户无需编写以上代码:在可视化编辑器中修改并保存规则链即自动热更新;规则链 DSL 的来源(文件加载、API 保存)见 RuleGo-Server 文档。
在 GitHub 上编辑此页 (opens new window)
上次更新: 2026/09/12, 16:59:03