BullModule
NestJS 🟡 MidDé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.