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 儲存庫。