BullMQ
Redis 的 JS 客户端,号称强大且快速
BullMQ 是专为 Redis 构建的开源消息队列,被数千家公司用于每天处理数十亿作业,支持 Node.js、Bun、Python、Rust、Elixir 和 PHP 六种语言,同一队列可在异构技术栈中混用生产者和消费者。
| 收费 | MIT 开源协议,Pro 版提供额外速率限制、去重等高级功能 |
|---|---|
| 平台 | Node.js / Bun / Python / Rust / Elixir / PHP |
| 中文 | 官网及文档为英文,无官方中文版 |
| 用途 | 基于 Redis 的分布式后台任务与消息队列 |
BullMQ 提供延迟作业、定时调度、自动重试、作业流编排和速率限制等生产级能力。延迟作业支持毫秒级精度且可跨服务器重启持久化;定时调度使用 cron 表达式或固定间隔,支持 upsert 语义和作业模板;自动重试采用指数退避策略并支持死信队列;作业流允许无限嵌套的父子依赖,子任务并行执行,父任务等待全部完成后聚合结果。
官方基准测试显示,使用 DragonflyDB 时 BullMQ 可达到每秒排队超过 25 万作业的处理速度。它兼容 Redis、Valkey、DragonflyDB、AWS ElastiCache、Upstash 等多种后端,并支持水平扩展——可在不限数量的服务器上运行数千个 Worker,仅需极简配置。
BullMQ 允许用不同语言编写生产者和消费者,例如 Node.js 生产作业、Python Worker 消费,通过同一队列无缝协作。安全方面,运营方 Taskforce.sh 已通过 SOC 2 Type II 认证并符合 GDPR,Trust Center 公开当前控制措施与合规状态。
Q1:BullMQ 的 Pro 版本与开源版有什么区别?
A1:开源版(MIT)无任何 Worker 数量或并发限制;Pro 版额外提供基于组的速率限制、作业去重(防抖/节流)等高级功能,适合需要精细流量控制的场景。
Q2:BullMQ 能否在同一个队列中混合使用 Node.js 和 Python?
A2:可以。BullMQ 支持跨语言互操作,例如用 Node.js 的 Queue.add() 生产作业,用 Python 的 Worker 消费,反之亦然,所有语言共享同一 Redis 后端。
Q3:BullMQ 的延迟作业精度如何?服务器重启后会丢失吗?
A3:延迟作业支持毫秒级精度,且作业元数据持久化在 Redis 中,服务器重启后仍能按原定时间触发。
更多同类工具与网站,可在其他框架分类继续挑选。
信息核实于 2026年7月,具体以官网为准。
评论
暂无评论