这个项目能做什么
BullMQ 是一个高性能、基于 Redis 的分布式消息队列和批处理库,专为 Node.js、Python、.NET、Elixir、Rust 和 PHP 设计。它注重稳定性和原子性,适合需要可靠后台作业处理的生产环境。
该库提供多种语言的本地实现,每种语言作为独立包发布:Node.js/Bun 使用 `npm install bullmq`,Python 使用 `pip install bullmq`,Rust 使用 `cargo add bullmq-official`,Elixir 使用 `{:bullmq, "~> x.x"}`,.NET 使用 `dotnet add package BullMQ`,以及专门的 PHP 包。对于其他平台,提供 BullMQ Proxy。
核心功能包括通过 FlowProducer 实现父子作业依赖,支持构建跨队列的复杂作业树(根、子、孙作业)。去重支持防抖和节流模式。作业可设置优先级、延迟、按计划重复,并以可配置并发处理。队列级别支持速率限制,队列可暂停和恢复。原子操作确保数据一致性,所有作业持久化到 Redis。
BullMQ 还支持全局事件,用于监控作业生命周期事件(如完成和失败)。提供沙箱工作器选项,实现隔离作业执行。项目包含与其他作业队列解决方案(如 Bull、Kue、Bee 和 Agenda)的功能对比表,突出 BullMQ 更广泛的功能集。
官方前端通过 Taskforce.sh 提供,包含专业仪表板,可检查队列、搜索和重试作业、提升延迟作业,并查看指标和统计。项目开源,社区活跃,赞助商包括 DragonflyDB(一个兼容 Redis 的即插即用替代品,针对 BullMQ 工作负载优化)。
使用 BullMQ 的知名组织包括 Microsoft(通过 Lage)、Vendure、Datawrapper、NestJS、Langfuse、Curri、Novu、NocoDB 和 Infisical。项目采用 semantic-release 进行自动化版本管理和发布。
评论
0 评分人数达到10人后显示
登录后参与讨论。