任务队列解决的是“应用产生任务,Worker 异步执行”:包括延迟、重试、并发和后台处理。它们不等同于持久化业务工作流,也不替代原生定时器。
方案对比
| 项目 | 生态 | 主要能力 | 运行依赖 |
|---|---|---|---|
| BullMQ | Node.js | Redis 队列、延迟、重复任务和 Worker | Redis |
| Celery | Python | 分布式后台任务和重试 | Broker、Worker、结果存储 |
| RQ | Python | Redis 队列和后台任务 | Redis、Worker 和任务持久化 |
| Dramatiq | Python | 简单可靠的后台消息处理 | Broker、Worker 和中间件 |
| Sidekiq | Ruby / Rails | 后台处理、队列和重试 | Redis |
| Hangfire | .NET | 延迟、周期任务和 Dashboard | 持久化存储和 Worker |
| Asynq | Go | Redis 队列、延迟、周期、重试和 Web UI | Redis |
Node.js 优先 BullMQ;Python 先比较 Celery、RQ 和 Dramatiq;Rails 看 Sidekiq;.NET 看 Hangfire;Go 看 Asynq。需要跨多个外部系统等待、补偿和恢复时,改看持久化业务工作流对比。