bullmq
v5.33.1
Dragonfly 是一种新的 Redis™ 直接替代品,与 BullMQ 完全兼容,并带来了一些优于 Redis™ 的重要优势,例如通过利用所有可用 CPU 内核以及更快、内存效率更高的数据结构来大幅提高性能。请在此处阅读有关如何将其与 BullMQ 一起使用的更多信息。 |
使用 BullMQ 的一些著名组织:
安装:
$ yarn add bullmq
将作业添加到队列中:
import { Queue } from 'bullmq';const queue = new Queue('Paint');queue.add('cars', { color: 'blue' });
处理您的工人的工作:
import { Worker } from 'bullmq';const worker = new Worker('Paint', 异步作业 => { if (job.name === '汽车') {等待paintCar(job.data.color); }});
监听作业的完成情况:
import { QueueEvents } from 'bullmq';const queueEvents = new QueueEvents('Paint');queueEvents.on('completed', ({ jobId }) => { console.log('完成绘画');});queueEvents.on( '失败的', ({ jobId, failedReason }: { jobId: string; failedReason: string }) => {console.error('错误绘画', failedReason); },);
这只是表面现象,请在官方文档中查看所有功能及更多内容
由于存在一些作业队列解决方案,因此下表对它们进行了比较:
特征 | BullMQ-Pro | BullMQ | 公牛 | 奎 | 蜜蜂 | 议程 |
---|---|---|---|---|---|---|
后端 | 雷迪斯 | 雷迪斯 | 雷迪斯 | 雷迪斯 | 雷迪斯 | 蒙戈 |
观测值 | ✓ | |||||
团体速率限制 | ✓ | |||||
团体支持 | ✓ | |||||
批量支持 | ✓ | |||||
父/子依赖关系 | ✓ | ✓ | ||||
去抖 | ✓ | ✓ | ✓ | |||
优先事项 | ✓ | ✓ | ✓ | ✓ | ✓ | |
并发性 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
延迟的工作 | ✓ | ✓ | ✓ | ✓ | ✓ | |
全球事件 | ✓ | ✓ | ✓ | ✓ | ||
速率限制器 | ✓ | ✓ | ✓ | |||
暂停/恢复 | ✓ | ✓ | ✓ | ✓ | ||
沙盒工人 | ✓ | ✓ | ✓ | |||
可重复的工作 | ✓ | ✓ | ✓ | ✓ | ||
原子操作 | ✓ | ✓ | ✓ | ✓ | ||
坚持 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
用户界面 | ✓ | ✓ | ✓ | ✓ | ✓ | |
优化用于 | 职位/留言 | 职位/留言 | 职位/留言 | 工作机会 | 留言 | 工作机会 |
分叉存储库,进行一些更改,提交拉取请求!这是包含更多详细信息的贡献文档。
感谢所有使这个库成为可能的贡献者,还要特别提及 Leon van Kammen,他慷慨地捐赠了他的 npm bullmq 存储库。