Get Advice Icon

Need advice about which tool to choose?Ask the StackShare community!

delayed_job

52
65
+ 1
6
Que

16
20
+ 1
0
Sidekiq

1.1K
631
+ 1
408

Que vs Sidekiq vs delayed_job: What are the differences?

Introduction: When working with background job processing in Ruby on Rails, developers have several options to choose from, including Que, Sidekiq, and delayed_job. Each of these tools has its own set of features and capabilities, making it important to understand the key differences between them in order to choose the best one for a specific project.

1. Scalability and Performance: Sidekiq is known for its high scalability and performance due to its use of multithreading, while Que and delayed_job rely on single-threaded processing. This allows Sidekiq to handle a larger number of concurrent jobs more efficiently, making it a preferred choice for applications with high volumes of background jobs.

2. Redis Dependency: Both Sidekiq and delayed_job require Redis as a backend for job processing, while Que utilizes PostgreSQL's advisory locks for queuing jobs. This difference in dependencies can impact the overall architecture and setup of the application, with Que offering a more seamless integration for projects already utilizing PostgreSQL.

3. Active Development and Maintenance: Sidekiq has a strong community and active development, with frequent updates and improvements being released regularly. On the other hand, delayed_job has seen slower development in recent years, which may affect its compatibility with newer versions of Ruby on Rails and potential security vulnerabilities. Que falls somewhere in between, offering steady development but with a smaller community compared to Sidekiq.

4. Error Handling and Retries: Sidekiq provides robust error handling and retry mechanisms out of the box, allowing developers to easily configure policies for retrying failed jobs. This feature is essential for ensuring the reliability of background job processing. Que and delayed_job also offer similar functionalities but may require additional configuration and customization to achieve the same level of reliability as Sidekiq.

5. Cost and Licensing: Sidekiq is a commercial product with a freemium model, offering additional features and support through paid licenses. On the other hand, Que and delayed_job are open-source and free to use, making them more cost-effective options for projects with budget constraints. The choice between these options may depend on the project's requirements for support and additional features provided by commercial offerings.

6. Ease of Setup and Configuration: Sidekiq is known for its ease of setup and configuration, with clear documentation and a straightforward installation process. Que and delayed_job also offer simple setup procedures, but may require more manual configuration and tuning for optimal performance compared to Sidekiq. Developers looking for a quick and easy implementation may find Sidekiq to be the most user-friendly option among the three.

In Summary, understanding the key differences between Que, Sidekiq, and delayed_job is crucial for selecting the right background job processing tool based on specific project requirements and constraints.

Manage your open source components, licenses, and vulnerabilities
Learn More
Pros of delayed_job
Pros of Que
Pros of Sidekiq
  • 3
    Easy to get started
  • 2
    Reliable
  • 1
    Doesn't require Redis
    Be the first to leave a pro
    • 124
      Simple
    • 99
      Efficient background processing
    • 60
      Scalability
    • 37
      Better then resque
    • 26
      Great documentation
    • 15
      Admin tool
    • 14
      Great community
    • 8
      Integrates with redis automatically, with zero config
    • 7
      Stupidly simple to integrate and run on Rails/Heroku
    • 7
      Great support
    • 3
      Ruby
    • 3
      Freeium
    • 2
      Pro version
    • 1
      Dashboard w/live polling
    • 1
      Great ecosystem of addons
    • 1
      Fast

    Sign up to add or upvote prosMake informed product decisions

    2
    2.9K
    1.6K
    485
    4K
    2.4K
    - No public GitHub repository available -
    - No public GitHub repository available -

    What is delayed_job?

    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.

    What is 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.

    What is 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.

    Need advice about which tool to choose?Ask the StackShare community!

    What companies use delayed_job?
    What companies use Que?
    What companies use Sidekiq?

    Sign up to get full access to all the companiesMake informed product decisions

    What tools integrate with delayed_job?
    What tools integrate with Que?
    What tools integrate with Sidekiq?
      No integrations found

      Blog Posts

      Jun 6 2019 at 5:11PM

      AppSignal

      RedisRubyKafka+9
      16
      1738
      GitHubMySQLSlack+44
      109
      50838
      What are some alternatives to delayed_job, Que, and Sidekiq?
      RabbitMQ
      RabbitMQ gives your applications a common platform to send and receive messages, and your messages a safe place to live until received.
      Resque
      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.
      MySQL
      The MySQL software delivers a very fast, multi-threaded, multi-user, and robust SQL (Structured Query Language) database server. MySQL Server is intended for mission-critical, heavy-load production systems as well as for embedding into mass-deployed software.
      PostgreSQL
      PostgreSQL is an advanced object-relational database management system that supports an extended subset of the SQL standard, including transactions, foreign keys, subqueries, triggers, user-defined types and functions.
      MongoDB
      MongoDB stores data in JSON-like documents that can vary in structure, offering a dynamic, flexible schema. MongoDB was also designed for high availability and scalability, with built-in replication and auto-sharding.
      See all alternatives