跳转到内容

x/messaging/scheduler Primer

实验性 — API 兼容性未冻结。采用前请先评估。查看发布策略了解当前成熟度。

当你已经通过 x/messaging Primer 确认问题明确属于进程内调度时,打开这一页:cron 表达式、延迟任务执行、重试协调,或定时任务的死信队列处理。

x/messaging/schedulerx/messaging 能力家族内的下级调度基础元语。在直接打开本包之前,先在 x/messaging 中发现新的消息功能。

  • 你正在添加基于 cron 表达式定时的任务调度(cron.go
  • 你正在实现带优先级堆的延迟任务执行(heap.goscheduler_executor.go
  • 你正在接入失败定时任务的重试逻辑和死信队列处理(dlq.go
  • 你正在暴露调度器管理 HTTP 端点(admin_http.go
  • 你正在实现自定义调度器存储后端(store.gostore_kv.go
  • 工作是新的面向应用的消息功能 — 先从 x/messaging Primer 确认家族归属
  • 改动关于业务工作流编排或领域专属任务逻辑 — 保留在应用代码中
  • 工作需要为定时事件做 pub-sub 扇出 — 与 x/messaging/pubsub 协调
  • 改动引入 core bootstrap 所有权或稳定根入口点
  1. x/messaging/scheduler/module.yaml
  2. x/messaging/scheduler/scheduler.go
  3. x/messaging/scheduler/cron.go
  4. x/messaging/scheduler/scheduler_executor.go
  5. x/messaging/scheduler/dlq.go
  6. x/messaging/scheduler/store.go
这些工作适合留在 x/messaging/scheduler一旦变成这些问题就应移出
cron:表达式解析、调度评估、tick 生成业务专属任务定义或领域 handler
heap:基于优先级的任务排序和延迟执行队列调度上下文外的通用进程内优先队列
scheduler_executor:任务分发、并发控制、超时执行带领域状态机的工作流编排
dlq:死信捕获、重试策略、失败暴露失败任务的应用级错误处理或告警
admin_http:健康、统计和队列检查端点业务管理仪表板或领域专属任务管理 UI

调度是一个跨领域关注点,容易散落在应用代码中。将调度基础元语保留在 x/messaging/scheduler——带有显式的 cron、重试和 DLQ 所有权——防止每个服务以不同方式重新实现相同模式。关键规则是调度协调保持显式:无隐藏的进程全局状态,无通过 package init 进行 cron 注册。