Cell Supervisor

wesgine Cell 内部的 Supervisor goroutine 与 Inbox 消息队列。


Supervisor 职责

Cell.Start 后自动启动 Supervisor goroutine,负责:


Inbox

Cell 的内部消息队列:

容量控制

CellSpec.InboxCap 控制 Inbox 最大容量。

超出容量时的行为:

消息来源行为
HTTP 请求返回 429 Too Many Requests
内部调度阻塞等待空间
Cron 触发跳过本次执行

背压机制

Inbox 满 → 上游感知到背压 → 减缓发送速率。

这是一个自然的流量控制机制,无需额外配置。


EventBus

Cell 内的事件发布/订阅系统:

事件源(Run / 外设 / 管理操作)
  ↓ publish
EventBus
  ↓ fanout
订阅者(SSE / 内部消费者)

事件路由


生命周期

Cell.Start()
  ↓
启动 Supervisor goroutine
启动 Inbox
启动 EventBus
  ↓
Cell 运行中...
  ↓
Cell.Stop()
  ↓
排空活跃 Run
关闭 Inbox(拒绝新消息)
关闭 EventBus
关闭 Supervisor

停止顺序

  1. 停止接收新消息
  2. 等待正在执行的 Run 完成
  3. 关闭事件分发
  4. 关闭 Supervisor goroutine

与温度的关系

温度SupervisorInboxEventBus
Hot✓ 运行✓ 运行✓ 运行
Warm✓ 运行✓ 运行✓ 运行
Cool❌ 停止❌ 停止❌ 停止
Cold❌ 停止❌ 停止❌ 停止

Cool → Warm 唤醒时重新启动所有组件。


相关文档