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