BullModule

NestJS 🟡 Mid

Définition

Module pour gérer des queues de jobs asynchrones via Redis et Bull/BullMQ. Permet le traitement en arrière-plan avec retries et scheduling.

Analogie

Comme une file d'attente au guichet : les taches arrivent, sont traitées dans l'ordre et reessayees si besoin.

Exemple de code

@Processor('email')
export class EmailProcessor {
  @Process()
  async sendEmail(job: Job<EmailData>) {
    await this.mailer.send(job.data);
  }
}

// Ajout en queue
await this.emailQueue.add({ to: '[email protected]', subject: 'Hello' });

Cas d'usage

Traiter l'envoi d'emails, le redimensionnement d'images ou les exports CSV en arrière-plan.

Anti-pattern

Traiter des taches longues de façon synchrone dans le request handler, bloquant la réponse.
#core

← → au clavier pour passer d'une fiche à l'autre