StackShareStackShare
Follow on
StackShare

Discover and share technology stacks from companies around the world.

Follow on

© 2025 StackShare. All rights reserved.

Product

  • Stacks
  • Tools
  • Feed

Company

  • About
  • Contact

Legal

  • Privacy Policy
  • Terms of Service
  1. Stackups
  2. Utilities
  3. Background Jobs
  4. Background Processing
  5. Resque vs delayed_job

Resque vs delayed_job

OverviewComparisonAlternatives

Overview

Resque
Resque
Stacks118
Followers126
Votes9
GitHub Stars9.5K
Forks1.7K
delayed_job
delayed_job
Stacks53
Followers65
Votes6
GitHub Stars4.8K
Forks952

Resque vs delayed_job: What are the differences?

Introduction: Resque and delayed_job are two popular job processing libraries in Ruby on Rails. While both provide similar functionality, there are key differences between them that developers should consider when choosing one for their project.

  1. Implementation: Resque uses Redis as its backend to store job data, while delayed_job relies on a database table to store job information. This difference in implementation affects performance and scalability. Redis, being an in-memory datastore, provides faster and more efficient job processing, especially when dealing with large volumes of jobs.

  2. Failure Handling: Resque has a built-in retry mechanism for failed jobs, allowing developers to specify a maximum number of retries. On the other hand, delayed_job does not have built-in retry functionality, but it provides hooks to implement custom error handling logic. This difference in failure handling can be important for applications that require robust error recovery and job resiliency.

  3. Scheduling: While both Resque and delayed_job allow for asynchronous job execution, Resque also provides scheduling capabilities. Developers can schedule jobs to run at specific times or intervals, which can be useful for performing tasks at a later time or for recurring background jobs. Delayed_job does not have built-in scheduling functionality and requires external libraries or custom implementations to achieve the same functionality.

  4. Dependencies: Resque has a minimal set of dependencies, making it easy to integrate into existing Rails applications. Delayed_job, on the other hand, has more dependencies, including Active Record or an ORM adapter, which may require additional configuration and overhead. This difference in dependencies may affect the ease of integration and the overall performance of the job processing system.

  5. Job Priority: Resque allows developers to assign priority levels to jobs, which can be useful when dealing with different types of jobs that require different levels of attention. Delayed_job does not have built-in support for job priorities, and developers would need to implement custom logic to achieve the same functionality.

  6. Community and Documentation: Resque has a larger and more active community, with extensive documentation and resources available. It is well-maintained and widely used in production environments. Delayed_job, while also popular, may have relatively fewer resources and less active community support. Choosing between the two may depend on the level of community engagement and the availability of resources for troubleshooting and support.

In Summary, Resque and delayed_job have key differences in their implementation, handling of job failures, scheduling capabilities, dependencies, job priority support, and community support. These differences should be considered when selecting a job processing library for a Ruby on Rails project.

Share your Stack

Help developers discover the tools you use. Get visibility for your team's tech choices and contribute to the community's knowledge.

View Docs
CLI (Node.js)
or
Manual

Detailed Comparison

Resque
Resque
delayed_job
delayed_job

Background jobs can be any Ruby class or module that responds to perform. Your existing classes can easily be converted to background jobs or you can create new classes specifically to do work. Or, you can do both.

Delayed_job (or DJ) encapsulates the common pattern of asynchronously executing longer tasks in the background. It is a direct extraction from Shopify where the job table is responsible for a multitude of core tasks.

Statistics
GitHub Stars
9.5K
GitHub Stars
4.8K
GitHub Forks
1.7K
GitHub Forks
952
Stacks
118
Stacks
53
Followers
126
Followers
65
Votes
9
Votes
6
Pros & Cons
Pros
  • 5
    Free
  • 3
    Scalable
  • 1
    Easy to use on heroku
Pros
  • 3
    Easy to get started
  • 2
    Reliable
  • 1
    Doesn't require Redis

What are some alternatives to Resque, delayed_job?

Sidekiq

Sidekiq

Sidekiq uses threads to handle many jobs at the same time in the same process. It does not require Rails but will integrate tightly with Rails 3/4 to make background processing dead simple.

Beanstalkd

Beanstalkd

Beanstalks's interface is generic, but was originally designed for reducing the latency of page views in high-volume web applications by running time-consuming tasks asynchronously.

Hangfire

Hangfire

It is an open-source framework that helps you to create, process and manage your background jobs, i.e. operations you don't want to put in your request processing pipeline. It supports all kind of background tasks – short-running and long-running, CPU intensive and I/O intensive, one shot and recurrent.

Faktory

Faktory

Redis -> Sidekiq == Faktory -> Faktory. Faktory is a server daemon which provides a simple API to produce and consume background jobs. Jobs are a small JSON hash with a few mandatory keys.

Kue

Kue

Kue is a feature rich priority job queue for node.js backed by redis. A key feature of Kue is its clean user-interface for viewing and managing queued, active, failed, and completed jobs.

Bull

Bull

The fastest, most reliable, Redis-based queue for Node. Carefully written for rock solid stability and atomicity.

Cron

Cron

Background-only application which launches and runs other applications, or opens documents, at specified dates and times.

PHP-FPM

PHP-FPM

It is an alternative PHP FastCGI implementation with some additional features useful for sites of any size, especially busier sites. It includes Adaptive process spawning, Advanced process management with graceful stop/start, Emergency restart in case of accidental opcode cache destruction etc.

Que

Que

Que is a high-performance alternative to DelayedJob or QueueClassic that improves the reliability of your application by protecting your jobs with the same ACID guarantees as the rest of your data.

Goose

Goose

It is a simple, reliable & scalable background processing library for Clojure. It has a transparent design & cloud-native architecture.

Related Comparisons

Bootstrap
Materialize

Bootstrap vs Materialize

Laravel
Django

Django vs Laravel vs Node.js

Bootstrap
Foundation

Bootstrap vs Foundation vs Material UI

Node.js
Spring Boot

Node.js vs Spring-Boot

Liquibase
Flyway

Flyway vs Liquibase