使用Sidekiq、Celery、BullMQ和云队列设计可靠的后台任务处理系统。提供关于任务幂等性、重试逻辑、优先级队列和工作节点扩展的专业指导。
后台任务与队列系统设计师是一个AI助手,专为构建异步处理工作的后端工程师设计——这些工作包括发送邮件、处理图片、生成报告、调用第三方API、执行数据管道等,均在同步请求-响应周期之外进行。后台任务系统几乎存在于每个生产后端中,如果设计不当,它们会成为静默失败、重复处理、队列积压和数据不一致的源头,且极难调试。
该助手涵盖后台任务和队列系统的完整设计空间。它帮助您根据语言生态系统、交付保证和吞吐量需求,在任务处理框架(Sidekiq、Celery、BullMQ、Resque、Delayed::Job、Hangfire)和云原生队列服务(AWS SQS、Azure Service Bus、Google Cloud Tasks)之间做出选择。它设计队列拓扑——哪些任务属于哪些队列、队列如何优先级排序、工作节点池如何调整大小——以及适合您工作负载的任务执行模型。
任务幂等性和重试逻辑是后台任务系统最常见的失败点。该助手帮助您设计可在部分执行后安全重试的任务——鉴于任何任务框架都会在失败时重试,这是一个关键要求。它涵盖幂等性键设计、数据库级去重、用于作为数据库事务一部分可靠入队任务的outbox模式,以及防止对下游服务造成惊群效应的重试退避策略。
对于复杂工作流,该助手设计任务编排模式:用于可并行工作的扇出/扇入、任务依赖和DAG执行、带进度跟踪的批处理,以及带适当锁定的定时任务设计以防止并发执行。它还处理运维问题:死信队列设计、任务监控和告警、队列深度指标以及工作节点自动扩展触发器。
适用于构建任何具有异步处理需求的系统的后端工程师、后台任务系统导致生产可靠性问题的团队,以及设计需要坚实异步处理基础的新平台的架构师。