Resque VS Delayed::Job

Compare Resque vs Delayed::Job and see what are their differences.

Resque

Resque is a Redis-backed Ruby library for creating background jobs, placing them on multiple queues, and processing them later. (by resque)

Delayed::Job

Database based asynchronous priority queue system -- Extracted from Shopify (by collectiveidea)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
Resque Delayed::Job
5 10
9,388 4,801
0.1% 0.1%
4.1 2.1
5 months ago 2 months ago
Ruby Ruby
MIT License MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

Resque

Posts with mentions or reviews of Resque. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-04-14.
  • Mike Perham of Sidekiq: “If you build something valuable, charge money for it.”
    6 projects | news.ycombinator.com | 14 Apr 2023
    The free version acts exactly like Resque, the previous market leader in Ruby background jobs. If it was good enough reliability for GitHub and Shopify to use for years, it was good enough for Sidekiq OSS too.

    Here's Resque literally using `lpop` which is destructive and will lose jobs.

    https://github.com/resque/resque/blob/7623b8dfbdd0a07eb04b19...

  • Add web scraping data into the database at regular intervals [ruby & ror]
    2 projects | /r/learnprogramming | 16 Jun 2022
    You can use a background job queue like Resque to scrape and process data in the background, and a scheduler like resque-scheduler to schedule jobs to run your scraper periodically.
  • How to run a really long task from a Rails web request
    3 projects | dev.to | 18 Apr 2022
    So how do we trigger such a long-running process from a Rails request? The first option that comes to mind is a background job run by some of the queuing back-ends such as Sidekiq, Resque or DelayedJob, possibly governed by ActiveJob. While this would surely work, the problem with all these solutions is that they usually have a limited number of workers available on the server and we didn’t want to potentially block other important background tasks for so long.
  • Building a dynamic staging platform
    5 projects | dev.to | 14 Apr 2022
    Background jobs are another limitation. Since only the Aha! web service runs in a dynamic staging, the host environment's workers would process any Resque jobs that were sent to the shared Redis instance. If your branch hadn't updated any background-able methods, this would be no big deal. But if you were hoping to test changes to these methods, you would be out of luck.
  • Autoscaling Redis applications on Kubernetes 🚀🚀
    9 projects | dev.to | 2 Mar 2021
    Redis Lists are quite versatile and used as the backbone for implementing scalable architectural patterns such as consumer-producer (based on queues), where producer applications push items into a List, and consumers (also called workers) process those items. Popular projects such as resque, sidekiq, celery etc. use Redis behind the scenes to implement background jobs.

Delayed::Job

Posts with mentions or reviews of Delayed::Job. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-04-18.
  • How to narrow down race condition in delayed job/mysql2?
    1 project | /r/rails | 31 Jan 2023
    I included this in the github issue but we had coverband induced log spam, it got fixed and suddenly we hit the bug. I did find this from someone with a similar issue but there was no conclusion.
  • How to run a really long task from a Rails web request
    3 projects | dev.to | 18 Apr 2022
    So how do we trigger such a long-running process from a Rails request? The first option that comes to mind is a background job run by some of the queuing back-ends such as Sidekiq, Resque or DelayedJob, possibly governed by ActiveJob. While this would surely work, the problem with all these solutions is that they usually have a limited number of workers available on the server and we didn’t want to potentially block other important background tasks for so long.
  • Delayed Job vs. Sidekiq: Which Is Better?
    5 projects | dev.to | 8 Mar 2022
    Several gems support job queues and background processing in the Rails world — Delayed Job and Sidekiq being the two most popular ones.
    13 projects | news.ycombinator.com | 16 Feb 2022
    Rails 7 support only just got added https://github.com/collectiveidea/delayed_job/pull/1161
  • Why does rails have a tradition of queuing background jobs in a separate NoSQL store, when both the queueing controller and the job class tend to hammer the main database anyway?
    3 projects | /r/rails | 28 Dec 2021
    Back in the day, before Sidekiq and such, we used Delayed Job https://github.com/collectiveidea/delayed_job
  • A quick look at background jobs in Ruby
    1 project | dev.to | 11 Mar 2021
    There are a few of popular systems. A few need a database, such as Delayed::Job, while others prefer Redis, such as Resque and Sidekiq.
  • Schedule background jobs in Rails with Integromat
    2 projects | /r/rails | 14 Feb 2021
    I always wad a fan of Sidekiq, but recently I wanted to remove redis as a dependency. I ended up going back to classic delayed_job. My reason for that was I also didn't want dependency with Postgres, as I like to use sqlite on development and Postgres on production. The best solution I've seen is Que, which works with Postgres. It is complete, has all the features you need.
  • Background Job Processing in Ruby without external libraries and dependencies
    1 project | dev.to | 1 Jan 2021
    Ruby gets hammered a lot for its green threads and no real concurrency yet Ruby libraries such as Resque, Delayed Job and Sidekiq are some of the most popular choices to run background jobs in the industry. When you have a huge project and millions of requests and hundreds of thousands of operations to perform, reach out to one of these solutions which are feature complete and you don’t have to reinvent the wheel as its complex piece of software to implement and requires thousands of human hours. While they help you scale sometimes they are not what you are looking for or need as they are meant for a scale of 10000s of jobs per second and what you need is a background processing for few jobs that can be handled in memory without a dependency of a queue such as Redis. If you look at the benchmark numbers from Sidekiq they are for 100K jobs because that is the scale it is meant to be though one can use it for running a few hundred complex jobs as well where you require queue management and supervision.
  • Digital Ocean App Platform vs Heroku
    2 projects | dev.to | 24 Dec 2020
    Before we dive in, I wanted to go over my background real quick for context. I'm mostly a Rails developer professionally, and I am on the 'Infrastructure' team at work, so I integrate closely with Heroku and am pretty familiar with their product and offerings. Given my Rails background, this article will focus on deploying a web app with at least one background job process. For my hackathon app, I had a web process running Puma and a worker process running DelayedJob.

What are some alternatives?

When comparing Resque and Delayed::Job you can also consider the following projects:

Sidekiq - Simple, efficient background processing for Ruby

Shoryuken - A super efficient Amazon SQS thread based message processor for Ruby

Sucker Punch - Sucker Punch is a Ruby asynchronous processing library using concurrent-ruby, heavily influenced by Sidekiq and girl_friday.

RabbitMQ - Open source RabbitMQ: core server and tier 1 (built-in) plugins

good_job - Multithreaded, Postgres-based, Active Job backend for Ruby on Rails.

Sneakers - A fast background processing framework for Ruby and RabbitMQ

Que - A Ruby job queue that uses PostgreSQL's advisory locks for speed and reliability.