QueueEventsListener to listen to events like job completion, failure, and progress updates.
Basic Setup
Create a QueueEventsListener class
Use the
@QueueEventsListener decorator to create an events listener:Available Events
Listen to various queue events using the@OnQueueEvent decorator:
- completed
- failed
- progress
- active
Triggered when a job completes successfully:
Complete Example
audio.queue-events.ts
Event Types
All available queue events:Job Lifecycle Events
Job Lifecycle Events
waiting- Job is waiting to be processedactive- Job has started processingcompleted- Job completed successfullyfailed- Job failedprogress- Job reported progressdelayed- Job is delayedstalled- Job stalled (worker lost lock)
Queue Management Events
Queue Management Events
paused- Queue was pausedresumed- Queue was resumedcleaned- Old jobs were cleaneddrained- Queue was drained
Job Management Events
Job Management Events
removed- Job was removedretries-exhausted- Job exhausted all retry attempts
Multiple Queue Listeners
Create separate event listeners for different queues:Integration with Services
Inject services into your event listeners:Best Practices
Use Logger
Use NestJS Logger for consistent logging:
Keep Handlers Fast
Event handlers should be quick - delegate heavy work to other services
Error Handling
Handle errors in event listeners:
Separate Concerns
Use different event listeners for different responsibilities
Related Resources
NestJS Integration
Learn about NestJS integration basics
NestJS Producers
Add jobs to queues in NestJS
External Documentation
NestJS Queues
Official NestJS queue documentation
Queue Events API
BullMQ Queue Events API reference
