Quick Start
Add Jobs to a Queue
The simplest way to add jobs is using the stateless API:Process Jobs with a Worker
Create a processor function and start a worker:Adding to Supervision Tree
For production use, add workers to your application’s supervision tree:Job Options
Basic Options
Job Deduplication
Worker Configuration
Worker with Event Callbacks
Rate Limiting
Job Processing
Basic Processor
With Progress Updates
Error Handling
Queue Events
Subscribe to queue-level events using QueueEvents:Job Schedulers (Repeatable Jobs)
Cron-based Scheduling
Interval-based Scheduling
Managing Schedulers
Queue Operations
Get Queue Information
Pause and Resume
Clean Up Jobs
Parent-Child Jobs (Flows)
Create job dependencies using FlowProducer:Graceful Shutdown
Interoperability
Jobs added in Elixir can be processed by workers in other languages: Node.js Worker:Best Practices
- Use supervision trees - Always supervise workers for automatic restarts
- Set appropriate concurrency - Balance between throughput and resource usage
- Use named connections - Makes it easier to manage multiple Redis instances
- Handle errors gracefully - Return
{:error, reason}for retries,:erroror raise for failures - Monitor with Telemetry - Set up telemetry handlers for observability
- Use rate limiting - Prevent overwhelming external services
- Clean up old jobs - Use
remove_on_completeandremove_on_failoptions
View Changelog
See what’s new in the latest version
