bullmq
v5.33.1
Dragonfly est un nouveau remplacement direct de Redis™ qui est entièrement compatible avec BullMQ et apporte des avantages importants par rapport à Redis™, tels qu'une amélioration considérable des performances en utilisant tous les cœurs de processeur disponibles et des structures de données plus rapides et plus économes en mémoire. Apprenez-en plus ici sur la façon de l'utiliser avec BullMQ. |
Quelques organisations notables utilisant BullMQ :
Installer:
$ yarn add bullmq
Ajoutez des tâches à la file d'attente :
import { Queue } from 'bullmq';const queue = new Queue('Paint');queue.add('cars', { color: 'blue' });
Traitez les tâches de vos travailleurs :
import { Worker } depuis 'bullmq';const worker = new Worker('Paint', travail asynchrone => { if (job.name === 'cars') {await paintCar(job.data.color); }});
Écoutez les tâches à terminer :
import { QueueEvents } from 'bullmq';const queueEvents = new QueueEvents('Paint');queueEvents.on('completed', ({ jobId }) => { console.log('done painting');});queueEvents.on( 'échoué', ({ jobId, failedReason } : { jobId : string ; failedReason : string }) => {console.error('erreur de peinture', failedReason); },);
Ceci ne fait qu'effleurer la surface, vérifiez toutes les fonctionnalités et plus encore dans la documentation officielle
Puisqu'il existe plusieurs solutions de file d'attente de tâches, voici un tableau les comparant :
Fonctionnalité | BullMQ-Pro | BullMQ | Taureau | Kué | Abeille | Ordre du jour |
---|---|---|---|---|---|---|
Back-end | redis | redis | redis | redis | redis | mongo |
Observables | ✓ | |||||
Limite de tarif de groupe | ✓ | |||||
Soutien de groupe | ✓ | |||||
Prise en charge des lots | ✓ | |||||
Dépendances parent/enfant | ✓ | ✓ | ||||
Anti-rebond | ✓ | ✓ | ✓ | |||
Priorités | ✓ | ✓ | ✓ | ✓ | ✓ | |
Concurrence | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Travaux retardés | ✓ | ✓ | ✓ | ✓ | ✓ | |
Événements mondiaux | ✓ | ✓ | ✓ | ✓ | ||
Limiteur de débit | ✓ | ✓ | ✓ | |||
Pause/Reprise | ✓ | ✓ | ✓ | ✓ | ||
Travailleur en bac à sable | ✓ | ✓ | ✓ | |||
Travaux répétables | ✓ | ✓ | ✓ | ✓ | ||
Opérations atomiques | ✓ | ✓ | ✓ | ✓ | ||
Persistance | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Interface utilisateur | ✓ | ✓ | ✓ | ✓ | ✓ | |
Optimisé pour | Emplois / Messages | Emplois / Messages | Emplois / Messages | Emplois | Messages | Emplois |
Forkez le dépôt, apportez quelques modifications, soumettez une pull-request ! Voici le document de contribution qui contient plus de détails.
Merci pour tous les contributeurs qui ont rendu cette bibliothèque possible, également une mention spéciale à Leon van Kammen qui a gentiment fait don de son repo npm bullmq.