用途:在实现异步任务、消息队列、定时任务或后台 worker 时使用,适合耗时操作(发邮件、生成报表、转码)、第三方 API 异步重试、服务解耦与事件驱动、削峰填谷、cron 定时任务以及多步骤工作流编排。
主要能力:给出消息队列选型参考(RabbitMQ、Kafka、Redis Streams、AWS SQS、NATS、Pulsar)与任务队列框架对照(Bull/BullMQ、Celery、Sidekiq、Spring Batch、Spring @Async、Asynq、Hangfire、Temporal)。核心原则包括任务幂等(At-least-once 可能重复投递)、可重试且有最大次数与间隔、死信队列与人工介入、任务参数小于 256KB 并用 ID 引用大对象、不在事务内直接发消息而用 Outbox 或 on_commit 保证一致、按延迟要求选队列、监控队列深度与处理延迟、失败率与死信数。
使用方式:提供 NestJS + BullMQ、Spring + RabbitMQ、Python + Celery、Go + Asynq 的配置与生产/消费范式,Outbox 表结构与发布扫描逻辑,Temporal 工作流补偿示例,指数退避加抖动重试配置,NestJS @Cron/@Interval 与 Celery Beat 定时任务写法。按“评估是否需要异步→选队列→设计任务→设计死信→选一致性方案→监控→测试”流程落地。
限制与注意:需保证幂等,避免重复扣款;必须有死信与告警,否则失败任务丢失;参数过大会压爆队列;事务内发消息可能导致 DB 回滚但消息已发;需限制重试次数与并发、设置任务超时、优雅关闭 worker、区分可重试与不可重试错误,多实例定时任务需分布式锁。具体收费、平台与效果资料暂未提供。