Cron 定时任务

wesgine 为每个 Cell 提供定时任务调度能力。


API 端点

GET    /cells/{id}/cron               定时任务列表(含 states)
POST   /cells/{id}/cron               添加定时任务
GET    /cells/{id}/cron/stats          调度器统计
DELETE /cells/{id}/cron/{jobId}        删除任务
PATCH  /cells/{id}/cron/{jobId}        更新任务
POST   /cells/{id}/cron/{jobId}/trigger 立即触发
POST   /cells/{id}/cron/{jobId}/enable  启用
POST   /cells/{id}/cron/{jobId}/disable 禁用
GET    /cells/{id}/cron/{jobId}/runs    运行记录

Cell Handle

cell.Cron() → CronHandle
  .List(ctx)
  .Add(ctx, job)
  .Update(ctx, id, patch)
  .Delete(ctx, id)
  .Trigger(ctx, id)
  .Enable(ctx, id) / .Disable(ctx, id)
  .ListRuns(ctx, id)
  .Stats(ctx)

Seed 声明

CellSpec.Cron 是出生声明(INV-SEED-01):


调度格式

支持标准 Cron 表达式:

字段范围
分钟0-59
小时0-23
日1-31
月1-12
星期0-7 (0 和 7 都是周日)

Actor 边界

Cron 是 Actor 边界的第四个面(INV-CRON-10):

详见 Cron 执行身份边界。


配额管理

受 CellQuotas.MaxCronJobs 限制:


反模式

禁止正确做法
依赖 CellSpec.Cron 做运行时变更运行时走 Cron Handle API
Cron job 不带 actor每个 job 必须绑定 actor
在 Cell.Start 校验 Cron 配额配额校验在 Add 唯一增长点