首页 / 技术分享 / 定时异步任务调度系统 /
任务调度系统功能模块介绍

任务调度系统功能模块介绍

码不停提

2026-02-14
21 次浏览
0 条评论

定时异步任务调度系统
分享:

scheduler 主要负责哪些业务场景

1) 定时调度:把“到点该跑的 Job”变成可执行的 run/attempt

  • 扫描 cron/interval 等 schedule
  • next_run_at <= now 时,创建 run/attempt(入队)
  • 计算并写回下一次 next_run_at

没有 scheduler:定时任务不会自动触发(除非你手动触发或已有队列残留)。

2) 编排推进:Workflow 这种“要按 DAG 推进步骤”的执行(如果你的实现是 scheduler tick 驱动)

在你们的实现里,workflow 的执行通常需要一个“tick/推进者”去:

  • 从 DB 里 claim workflow_runs(queued/running)
  • 创建/推进 workflow_step_runs
  • 根据 step 完成情况继续触发下游 step

没有 scheduler:workflow 可能会卡在 queued/running 的某个阶段(除非你把推进逻辑放在 worker 或 api 里)。

3) 清理与修复:超时/卡死检测、状态机收敛(看项目实现)

常见会做:

  • attempt 超时标记失败
  • run/workflow_run 状态收敛(所有子项结束后置 succeeded/failed)
  • 补偿 next_run_at/队列一致性

worker / api 各自的典型职责

  • worker:拿 attempt 执行(ssh/http/webhook 等),执行完上报结果/日志。
  • api:CRUD、手动触发、查询展示。
  • scheduler:把“计划/编排”变成“队列里的可执行单元”,并推动整体状态机。
  • agent: 是一个“守护进程/控制器”,用于拉起/守护 worker(例如在目标机上启动 worker,或按需启动 worker)

评论区 (0)

你需要先 登录 后才能发表评论。
还没有人评论,赶快成为第一个吧。