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
Add tool

Que vs delayed_job: What are the differences?

Introduction

Que and delayed_job are both popular job processing libraries in Ruby on Rails applications. While they serve similar purposes, there are key differences between the two that developers should be aware of when choosing which one to use in their projects.

  1. Scalability: Que uses a PostgreSQL database for its job storage, allowing for scalable job processing capabilities that can handle high volumes of jobs efficiently. On the other hand, delayed_job relies on the application's own database to store jobs, which may not be as optimized for handling large numbers of jobs.

  2. Concurrency: Que is designed to efficiently handle multiple concurrent job processes by leveraging the PostgreSQL advisory lock feature, enabling better performance in environments with high concurrency requirements. In contrast, delayed_job processes jobs sequentially, which can lead to bottlenecks and decreased performance in highly concurrent scenarios.

  3. Error Handling: Que provides robust error handling capabilities, allowing developers to easily track and manage job failures through its built-in error tracking features. delayed_job, on the other hand, may require more manual intervention to handle job failures effectively, potentially leading to higher maintenance overhead for handling errors.

  4. Scheduling: Que offers more advanced job scheduling features, such as support for recurring jobs and job prioritization, making it suitable for more complex job processing requirements. delayed_job, while capable of basic job scheduling, may not offer the same level of flexibility and functionality when it comes to advanced scheduling needs.

  5. Performance: Que is known for its performance optimizations, including efficient job processing algorithms and database interactions, that can lead to better overall performance and scalability compared to delayedjob. Developers working on applications with demanding performance requirements may benefit from Que's performance advantages over delayedjob.

  6. Active Maintenance: Que is actively maintained and updated by its contributors, ensuring that it receives regular bug fixes, feature updates, and compatibility enhancements to keep up with the evolving Rails ecosystem. delayed_job, while still used in many projects, may not receive the same level of active maintenance and updates, potentially leading to compatibility issues and outdated features in the long run.

In Summary, Que offers scalability, concurrency, error handling, scheduling capabilities, performance optimizations, and active maintenance advantages over delayed_job in Ruby on Rails applications.

Manage your open source components, licenses, and vulnerabilities
Learn More
Pros of delayed_job
Pros of Que
  • 3
    Easy to get started
  • 2
    Reliable
  • 1
    Doesn't require Redis
    Be the first to leave a pro

    Sign up to add or upvote prosMake informed product decisions

    2
    2.9K
    1.6K
    485
    4K
    - 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.

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

    What companies use delayed_job?
    What companies use Que?
    Manage your open source components, licenses, and vulnerabilities
    Learn More

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

    What tools integrate with delayed_job?
    What tools integrate with Que?
      No integrations found
      What are some alternatives to delayed_job and Que?
      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.
      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.
      See all alternatives