公共路由模型
Monoceros 的一个核心设计,是让多个系统共享同一种“命中后执行什么”的模型。
统一的三路结构
当前分发器、调度、命令、数据包系统,都可以把执行目标抽象为三类:
| 路由 | 说明 |
|---|---|
script | 执行脚本 |
workflow / action | 执行动作工作流 |
handler | 执行强类型处理器 |
这套设计的好处
1. 入口不同,执行目标可以复用
同一个脚本或工作流,可以被不同入口调用:
- 命令触发
- 事件触发
- 调度触发
- 数据包触发
2. 学会一套,就能通吃多个系统
你一旦理解了 script / workflow / handler 三种路由,就不需要为每个模块重新学一套配置逻辑。
3. 更容易拆分职责
- 入口层负责“什么时候触发”
- 路由层负责“把执行权交给谁”
- 脚本或工作流负责“真正做什么”
CommandService 的位置
命令系统自己的公共服务入口叫 CommandService。它负责:
- 注册命令定义
- 卸载命令定义
- 重载命令定义
同时,命令上下文会把:
- 发送者
- 原始参数
- 解析后的参数
- 命中的命令路径
统一整理后交给路由目标。
什么时候用哪种路由
- 绝大多数服主配置:优先
script - 需要多步编排、等待、分支:选
workflow - 需要高级扩展或内建逻辑:再考虑
handler
如果你已经理解这页,再去看 ../command/routes.md、../dispatcher/definition.md、../schedule/definition.md、../wireshark/definition.md,会轻松很多。