bullmq
v5.33.1
Dragonfly es un nuevo reemplazo directo de Redis™ que es totalmente compatible con BullMQ y ofrece algunas ventajas importantes sobre Redis™, como un rendimiento enormemente mejor al utilizar todos los núcleos de CPU disponibles y estructuras de datos más rápidas y eficientes en memoria. Lea más aquí sobre cómo usarlo con BullMQ. |
Algunas organizaciones notables que utilizan BullMQ:
Instalar:
$ yarn add bullmq
Agregue trabajos a la cola:
importar {Cola} de 'bullmq';const cola = new Queue('Paint');queue.add('cars', {color: 'blue' });
Procesa los trabajos en tus trabajadores:
importar {Trabajador} de 'bullmq';const trabajador = nuevo Trabajador('Paint', trabajo asíncrono => { if (job.name === 'autos') {await paintCar(job.data.color); }});
Escuche los trabajos para completar:
importar {QueueEvents} de 'bullmq';const queueEvents = new QueueEvents('Paint');queueEvents.on('completado', ({ jobId }) => { console.log('pintura terminada');});queueEvents.on( 'fallido', ({ JobId, FailureReason }: { JobId: cadena; FailureReason: cadena }) => {console.error('Error al pintar', FailureReason); },);
Esto es solo una muestra de la superficie, consulta todas las características y más en la documentación oficial.
Dado que existen algunas soluciones de colas de trabajos, aquí hay una tabla que las compara:
Característica | BullMQ-Pro | ToroMQ | Toro | Kue | Abeja | Orden del día |
---|---|---|---|---|---|---|
backend | Redistribuir | Redistribuir | Redistribuir | Redistribuir | Redistribuir | mongo |
Observables | ✓ | |||||
Límite de tarifa de grupo | ✓ | |||||
Soporte grupal | ✓ | |||||
Soporte de lotes | ✓ | |||||
Dependencias entre padres e hijos | ✓ | ✓ | ||||
Antirrebote | ✓ | ✓ | ✓ | |||
Prioridades | ✓ | ✓ | ✓ | ✓ | ✓ | |
concurrencia | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Trabajos retrasados | ✓ | ✓ | ✓ | ✓ | ✓ | |
Eventos globales | ✓ | ✓ | ✓ | ✓ | ||
Limitador de velocidad | ✓ | ✓ | ✓ | |||
Pausa/Reanudar | ✓ | ✓ | ✓ | ✓ | ||
Trabajador de espacio aislado | ✓ | ✓ | ✓ | |||
Trabajos repetibles | ✓ | ✓ | ✓ | ✓ | ||
Operaciones atómicas | ✓ | ✓ | ✓ | ✓ | ||
Persistencia | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
interfaz de usuario | ✓ | ✓ | ✓ | ✓ | ✓ | |
Optimizado para | Trabajos / Mensajes | Trabajos / Mensajes | Trabajos / Mensajes | Empleos | Mensajes | Empleos |
¡Bifurca el repositorio, haz algunos cambios y envía una solicitud de extracción! Aquí está el documento colaborador que tiene más detalles.
Gracias por todos los contribuyentes que hicieron posible esta biblioteca, también una mención especial a Leon van Kammen que amablemente donó su repositorio npm bullmq.