BullModule

NestJS 🟡 Mid

Definition

Module pour gerer des queues de jobs asynchrones via Redis et Bull/BullMQ. Permet le traitement en arriere-plan avec retries et scheduling.

Analogie

Comme une file d'attente au guichet : les taches arrivent, sont traitees 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: 'user@mail.com', subject: 'Hello' });

Cas d'usage

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

Anti-pattern

Traiter des taches longues de facon synchrone dans le request handler, bloquant la reponse.
#core