bullmq
v5.33.1
Dragonfly ist ein neuer Redis™-Drop-In-Ersatz, der vollständig mit BullMQ kompatibel ist und einige wichtige Vorteile gegenüber Redis™ bietet, wie z. B. eine deutlich bessere Leistung durch Nutzung aller verfügbaren CPU-Kerne sowie schnellere und speichereffizientere Datenstrukturen. Lesen Sie hier mehr über die Verwendung mit BullMQ. |
Einige namhafte Organisationen, die BullMQ verwenden:
Installieren:
$ yarn add bullmq
Jobs zur Warteschlange hinzufügen:
import { Queue } from 'bullmq';const queue = new Queue('Paint');queue.add('cars', { color: 'blue' });
Verarbeiten Sie die Jobs in Ihren Arbeitern:
import { Worker } from 'bullmq';const worker = new Worker('Paint', async job => { if (job.name === 'cars') {await paintCar(job.data.color); }});
Hören Sie sich Aufgaben zur Fertigstellung an:
import { QueueEvents } from 'bullmq';const queueEvents = new QueueEvents('Paint');queueEvents.on('completed', ({ jobId }) => { console.log('done painting');});queueEvents.on( 'fehlgeschlagen', ({ jobId, failedReason }: { jobId: string; failedReason: string }) => {console.error('error painting', failedReason); },);
Dies kratzt nur an der Oberfläche. Überprüfen Sie alle Funktionen und mehr in der offiziellen Dokumentation
Da es einige Jobwarteschlangenlösungen gibt, finden Sie hier eine Vergleichstabelle:
Besonderheit | BullMQ-Pro | BullMQ | Stier | Kue | Biene | Agenda |
---|---|---|---|---|---|---|
Backend | redis | redis | redis | redis | redis | Mongo |
Observable | ✓ | |||||
Gruppenratenlimit | ✓ | |||||
Gruppenunterstützung | ✓ | |||||
Batch-Unterstützung | ✓ | |||||
Eltern-/Kind-Abhängigkeiten | ✓ | ✓ | ||||
Entprellen | ✓ | ✓ | ✓ | |||
Prioritäten | ✓ | ✓ | ✓ | ✓ | ✓ | |
Parallelität | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Verzögerte Aufträge | ✓ | ✓ | ✓ | ✓ | ✓ | |
Globale Ereignisse | ✓ | ✓ | ✓ | ✓ | ||
Ratenbegrenzer | ✓ | ✓ | ✓ | |||
Pause/Fortsetzen | ✓ | ✓ | ✓ | ✓ | ||
Sandkastenarbeiter | ✓ | ✓ | ✓ | |||
Wiederholbare Aufträge | ✓ | ✓ | ✓ | ✓ | ||
Atomare Operationen | ✓ | ✓ | ✓ | ✓ | ||
Beharrlichkeit | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Benutzeroberfläche | ✓ | ✓ | ✓ | ✓ | ✓ | |
Optimiert für | Jobs / Nachrichten | Jobs / Nachrichten | Jobs / Nachrichten | Jobs | Nachrichten | Jobs |
Forken Sie das Repo, nehmen Sie einige Änderungen vor und senden Sie eine Pull-Anfrage! Hier ist das beitragende Dokument mit weiteren Details.
Vielen Dank an alle Mitwirkenden, die diese Bibliothek ermöglicht haben, und eine besondere Erwähnung gebührt auch Leon van Kammen, der freundlicherweise sein npm bullmq-Repo gespendet hat.