BullMQ

DevOps 🟡 Mid

Definition

Librairie Node.js de gestion de queues basée sur Redis. Supporte les jobs delayed, repeatable, la priorisation et les workers concurrents.

Analogie

Une file d'attente intelligente avec des tickets numérotés, des VIP, et des tâches programmées.

Exemple de code

const queue = new Queue('emails');
await queue.add('welcome', { userId: '123' });

const worker = new Worker('emails', async (job) => {
  await sendEmail(job.data.userId);
});

Cas d'usage

Traitement asynchrone : envoi d'emails, génération de PDF, processing d'images.

Anti-pattern

Traiter les tâches lourdes de manière synchrone dans le request handler.
#devops#messaging#tooling