Visual LabINTERACTIVE LEARNING
04 · BUSINESS BACKENDP114 MIN

Async Job、Queue 与 Cron

把慢、可延后或需重试的工作移出请求,同时保持可追踪与可恢复。

MENTAL MODELBACKGROUND WORK
01API Commit
02Outbox
03Queue
04Worker
05Result / Retry
API 请求负责接受意图与返回确认,Queue 保存待办事实,Worker 负责在稍后可靠执行。
01 · CONCEPTS & BOUNDARIES

先把概念与边界说清楚

定义告诉你它是什么,边界告诉你它不负责什么;企业系统最常见的误解通常发生在两者混用时。

01

Async Job

不要求在当前请求内完成的工作单元,例如生成 PDF、同步物流、发送邮件。

02

Queue

在生产者与消费者之间缓冲任务,支持确认、重试、延迟和并发控制。

03

Cron Job

按时间计划触发的周期任务,例如过期报价和每日对账。

02 · BLIND BOTS CASE

确认订单要等 12 秒

问题现场

请求同步生成 PDF、发邮件并调用三个外部系统,任一步超时都让用户重试。

  1. 01

    事务只确认订单并写 outbox。

  2. 02

    Worker 分别处理文档、通知和集成。

  3. 03

    界面显示同步状态与可重试失败。

得到什么

API 快速稳定返回,外部故障不再制造重复订单。

03 · PRACTICE

马上动手

  1. 把订单确认工作分为同步与异步。
  2. 为 Worker 定义 job id 和幂等策略。
04 · PITFALLS

常见坑

  • 把完整对象快照无限塞进队列
  • 失败消息无限重试
  • Cron 与普通 Worker 共同重复处理
05 · KNOWLEDGE CHECK为什么 Queue 消费者通常必须幂等?查看答案⌄
答案

Worker 可能执行完成但确认消息失败,队列会再次投递;消费者必须识别同一 job 已产生的结果。