Options
# RuleContextOption
规则引擎实例执行的配置项。用法:ruleEngine.OnMsg(msg,...RuleContextOption)
,示例:
ruleEngine.OnMsg(msg, types.WithOnEnd(func(ctx types.RuleContext, msg types.RuleMsg, err error) {
// do something
}), types.WWithOnRuleChainCompleted(func(ctx RuleContext, snapshot RuleChainRunSnapshot){
// do something
}))
1
2
3
4
5
2
3
4
5
有以下选项:
# WithOnEnd
规则链分支执行结束回调。注意:如果规则链有多个结束点,回调函数则会执行多次。
types.WithOnEnd(func(ctx types.RuleContext,msg types.RuleMsg, err error) {
}
1
2
3
2
3
# WithContext
上下文。
- 用于不同组件实例数据或者信号量共享
- 用于超时取消
types.WithContext(c context.Context)
1
- WithOnAllNodeCompleted
规则链所有分支执行完回调函数。
- 只回调一次
types.WithOnAllNodeCompleted(func(){
})
1
2
3
2
3
# WithOnRuleChainCompleted
规则链执行完回调函数,并收集每个节点的运行日志。
types.WithOnRuleChainCompleted(func(ctx RuleContext, snapshot RuleChainRunSnapshot){
})
1
2
3
2
3
- RuleChainRunSnapshot:
字段 | 类型 | 说明 | 默认值 |
---|---|---|---|
RuleChain | RuleChain | 规则链快照:参考 | 无 |
id | string | 消息ID | 无 |
startTs | int64 | 规则链开始执行时间 | 无 |
endTs | int64 | 规则链结束执行时间 | 无 |
logs | []RuleNodeRunLog | 每个节点执行日志 | 无 |
additionalInfo | object | 扩展信息 | 无 |
- RuleNodeRunLog:
字段 | 类型 | 说明 | 默认值 |
---|---|---|---|
nodeId | string | 节点ID | 无 |
inMsg | RuleMsg | 输入消息:参考 | 无 |
outMsg | RuleMsg | 输出消息 :参考 | 无 |
relationType | string | 和下一个节点连接类型 | 无 |
err | string | 错误信息 | 无 |
logItems | []string | 执行过程中其他日志 | 无 |
startTs | int64 | 规则链开始执行时间 | 无 |
endTs | int64 | 规则链结束执行时间 | 无 |
# WithOnNodeCompleted
节点执行完回调函数,并收集节点的运行日志。
types.WithOnNodeCompleted(func(ctx RuleContext, nodeRunLog RuleNodeRunLog){
})
1
2
3
2
3
# WithOnNodeDebug
节点调试日志回调函数。 和config.OnDebug
一样,实时异步调用,必须节点或者规则链配置开启debugMode
才会触发
types.WithOnNodeDebug(func(ruleChainId string, flowType string, nodeId string, msg RuleMsg, relationType string, err error)){
})
1
2
3
2
3
提示
WithOnNodeCompleted
回调函数里面的自定义逻辑是异步触发的,无法保证执行顺序,可能在WithOnAllNodeCompleted
和WithOnRuleChainCompleted
之后执行。
# WithStartNode
v0.22.0+设置规则链第一个开始执行节点types.WithStartNode(nodeId string)
1
# WithTellNext
v0.22.0+设置通过指定节点Id,查找下一个或者多个执行节点。用于恢复规则链执行链路types.WithTellNext(fromNodeId string, relationTypes ...string)
1
在 GitHub 上编辑此页 (opens new window)
上次更新: 2024/09/24, 16:40:39