Cell Supervisor
wesgine Cell 内部的 Supervisor goroutine 与 Inbox 消息队列。
Supervisor 职责
Cell.Start 后自动启动 Supervisor goroutine,负责:
- 管理 Cell 内部消息路由(Inbox)
- 协调 Run 执行
- 管理 EventBus 事件分发
- 监控 Cell 健康状态
Inbox
Cell 的内部消息队列:
容量控制
CellSpec.InboxCap 控制 Inbox 最大容量。
超出容量时的行为:
| 消息来源 | 行为 |
|---|---|
| HTTP 请求 | 返回 429 Too Many Requests |
| 内部调度 | 阻塞等待空间 |
| Cron 触发 | 跳过本次执行 |
背压机制
Inbox 满 → 上游感知到背压 → 减缓发送速率。
这是一个自然的流量控制机制,无需额外配置。
EventBus
Cell 内的事件发布/订阅系统:
事件源(Run / 外设 / 管理操作)
↓ publish
EventBus
↓ fanout
订阅者(SSE / 内部消费者)
事件路由
- Run 事件 → per-Run 内存环 + wes_run_traces
- Cell 事件 → SSE 全局流
- 外设事件 → 各自独立的 SSE 流
生命周期
Cell.Start()
↓
启动 Supervisor goroutine
启动 Inbox
启动 EventBus
↓
Cell 运行中...
↓
Cell.Stop()
↓
排空活跃 Run
关闭 Inbox(拒绝新消息)
关闭 EventBus
关闭 Supervisor
停止顺序
- 停止接收新消息
- 等待正在执行的 Run 完成
- 关闭事件分发
- 关闭 Supervisor goroutine
与温度的关系
| 温度 | Supervisor | Inbox | EventBus |
|---|---|---|---|
| Hot | ✓ 运行 | ✓ 运行 | ✓ 运行 |
| Warm | ✓ 运行 | ✓ 运行 | ✓ 运行 |
| Cool | ❌ 停止 | ❌ 停止 | ❌ 停止 |
| Cold | ❌ 停止 | ❌ 停止 | ❌ 停止 |
Cool → Warm 唤醒时重新启动所有组件。
相关文档
- Cell 生命周期 →
cell-lifecycle.md - Cell 温度转换 →
cell-temperature-transitions.md - Cell Boot 序列 →
cell-boot-sequence.md - 事件系统 →
event-system.md