Delayed Job is a Ruby background-processing library designed to move long-running work out of the request cycle and into an asynchronous job queue. It was extracted from Shopify and is built around a database-backed jobs table rather than a separate queueing service. The system stores serialized Ruby objects that respond to a perform method, then workers pull and execute those jobs later. It supports priority, scheduled execution, retries, failure tracking, locking, and multiple workers across machines. Developers can enqueue explicit job objects or use send_later to delay method execution on existing objects. It is best suited for Rails and Ruby applications that need a simple, persistent background job system for emails, imports, downloads, indexing, and batch work.
Features
- Database-backed job queue
- Asynchronous background processing
- Priority-based job execution
- Retry and failure handling
- Scheduled job execution
- Multiple worker support