RuleGo RuleGo
🏠首页
  • 快速入门
  • 规则链
  • 标准组件
  • 扩展组件
  • 自定义组件
  • 可视化
  • RuleGo-Server
  • RuleGo-MCP-Server
  • AOP
  • 触发器
  • 高级主题
  • 性能
  • 标准组件
  • 扩展组件
  • 自定义组件
  • 组件市场
  • 概述
  • 快速入门
  • 路由
  • DSL
  • API
  • Options
  • 组件
🔥编辑器 (opens new window)
  • 可视化编辑器 (opens new window)
  • RuleGo-Server (opens new window)
  • ❓问答

    • FAQ
💖支持
👥加入社区
  • Github (opens new window)
  • Gitee (opens new window)
  • GitCode (opens new window)
  • 更新日志 (opens new window)
  • English
  • 简体中文
🏠首页
  • 快速入门
  • 规则链
  • 标准组件
  • 扩展组件
  • 自定义组件
  • 可视化
  • RuleGo-Server
  • RuleGo-MCP-Server
  • AOP
  • 触发器
  • 高级主题
  • 性能
  • 标准组件
  • 扩展组件
  • 自定义组件
  • 组件市场
  • 概述
  • 快速入门
  • 路由
  • DSL
  • API
  • Options
  • 组件
🔥编辑器 (opens new window)
  • 可视化编辑器 (opens new window)
  • RuleGo-Server (opens new window)
  • ❓问答

    • FAQ
💖支持
👥加入社区
  • Github (opens new window)
  • Gitee (opens new window)
  • GitCode (opens new window)
  • 更新日志 (opens new window)
  • English
  • 简体中文

广告采用随机轮播方式显示 ❤️成为赞助商
  • 快速入门

  • 规则链

  • 标准组件

  • 扩展组件

  • 自定义组件

  • 组件市场

  • 可视化

  • AOP

  • 触发器

  • 高级主题

    • Config
    • Options
      • 共享数据
      • 执行规则链
      • 组件配置变量
      • 组件连接复用
      • 性能
    • RuleGo-Server

    • 问题

    目录

    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

    有以下选项:

    # WithOnEnd

    规则链分支执行结束回调。注意:如果规则链有多个结束点,回调函数则会执行多次。

    types.WithOnEnd(func(ctx types.RuleContext,msg types.RuleMsg, err error) {
    	
    }
    
    1
    2
    3

    # WithContext

    上下文。

    • 用于不同组件实例数据或者信号量共享
    • 用于超时取消
    types.WithContext(c context.Context)
    
    1
    • WithOnAllNodeCompleted 规则链所有分支执行完回调函数。
      • 只回调一次
    types.WithOnAllNodeCompleted(func(){
    	
    })
    
    1
    2
    3

    # WithOnRuleChainCompleted

    规则链执行完回调函数,并收集每个节点的运行日志。

    types.WithOnRuleChainCompleted(func(ctx RuleContext, snapshot RuleChainRunSnapshot){
    	
    })
    
    1
    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

    # WithOnNodeDebug

    节点调试日志回调函数。 和config.OnDebug一样,实时异步调用,必须节点或者规则链配置开启debugMode才会触发

    types.WithOnNodeDebug(func(ruleChainId string, flowType string, nodeId string, msg RuleMsg, relationType string, err error)){
    	
    })
    
    1
    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)
    上次更新: 2025/04/02, 01:29:50
    Config
    共享数据

    ← Config 共享数据→

    Theme by Vdoing | Copyright © 2023-2025 RuleGo Team | Apache 2.0 License

    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式