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

    • AOP概述
    • Before 增强点
    • After 增强点
    • Around 增强点
    • Start 增强点
    • End 增强点
    • Completed 增强点
    • OnChainBeforeInit 增强点
    • OnNodeBeforeInit 增强点
    • OnCreated 增强点
    • OnReload 增强点
    • OnDestroy 增强点
    • 内置切片

      • 节点调试切面
      • 节点故障降级切面
      • 指标统计切面
      • 并发限制切面
      • 规则链初始化校验器切面
        • 功能概述
          • 子规则链不允许创建 Endpoint 组件
          • 环检测
        • 自定义校验规则
          • 创建校验函数
          • 注册校验规则
  • 触发器

  • 高级主题

  • RuleGo-Server

  • 问题

目录

规则链初始化校验器切面

# 规则链初始化校验器

规则链初始化校验器是一个重要的组件,用于在规则链启动之前验证其结构和配置是否符合相关规则。以下是对规则链初始化校验器的详细介绍。

# 功能概述

# 子规则链不允许创建 Endpoint 组件

  • 校验规则:如果一个子规则链(即 Root 属性为 false 的规则链)中存在 Endpoint 组件,会触发错误。
  • 错误提示:ErrNotAllowEndpointNode 表示子规则链不允许创建 Endpoint 组件。

# 环检测

  • 校验规则:规则链中不允许节点形成环。如果检测到环,会触发错误。(通过config.allowCycle开关控制是否允许形成环。默认为false,表示不允许形成环。)
  • 错误提示:ErrCycleDetected 表示在规则链中检测到环引用。

# 自定义校验规则

# 创建校验函数

用户可以创建自定义校验函数,定义符合以下签名的函数:

func(config types.Config, def *types.RuleChain) error
1

其中:

  • config 是规则链的配置信息。
  • def 是规则链的定义。

# 注册校验规则

使用 Rules.AddRule() 方法将自定义校验函数注册到规则校验器中。例如:

Rules.AddRule(func(config types.Config, def *types.RuleChain) error {
    if def != nil && len(def.Metadata.Nodes) > 10 {
        return errors.New("the rule chain cannot contain more than 10 nodes")
    }
    return nil
})
1
2
3
4
5
6
在 GitHub 上编辑此页 (opens new window)
上次更新: 2025/03/31, 01:52:11
并发限制切面
触发器

← 并发限制切面 触发器→

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

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