For a background job processor for Ruby, the first results are mperham/sidekiq (Sidekiq is the industry-standard Ruby background processing framework that natively supports Redis, ActiveJob, retries, concurrency, and scheduling, making it the definitive tool for this category), resque/resque (Resque is a foundational Ruby background job processing library that provides robust queue management, worker process control, and a built-in web dashboard, though it requires additional middleware or extensions to achieve native ActiveJob integration) and tobi/delayed_job (Delayed Job is a mature Ruby background processing library that handles asynchronous tasks and scheduling, though it uses a relational database rather than Redis as its primary backend). contribsys/faktory and richardknop/machinery round out the shortlist. Compare the match explanations and check the project documentation against your requirements.
We curate open-source GitHub repositories matching “best ruby background job libraries”. Results are ranked by relevance to your query — pick filters below to narrow, or refine with AI.
Sidekiq is a Ruby background processing framework and asynchronous task runner. It functions as a Redis-backed background job processor that offloads heavy or time-consuming work from web requests to separate worker processes to ensure the main application remains responsive. The system operates as a Redis task queue, storing pending jobs in Redis to be processed concurrently by multiple threads. It provides a framework for distributed task queueing and asynchronous job scheduling to coordinate work across multiple server instances. The project covers Ruby application scaling by executing ba
Sidekiq is the industry-standard Ruby background processing framework that natively supports Redis, ActiveJob, retries, concurrency, and scheduling, making it the definitive tool for this category.
Resque is a Ruby library for enqueueing and processing asynchronous tasks using Redis as a data store. It functions as a distributed task processor and queue manager, allowing long-running work to be moved out of the main request cycle. The system executes background jobs in isolated child processes to prevent memory leaks and provides a web-based dashboard for monitoring queue depths, worker activity, and failed job statistics. Capability areas include distributed worker coordination via signals, error handling with job retry mechanisms, and priority-ordered queue management. It also suppor
Resque is a foundational Ruby background job processing library that provides robust queue management, worker process control, and a built-in web dashboard, though it requires additional middleware or extensions to achieve native ActiveJob integration.
Delayed Job is a Ruby library that provides a database-backed system for asynchronous task processing. It enables the offloading of long-running or time-consuming operations to background workers by serializing method calls and their arguments into a relational database, ensuring that tasks persist across application restarts. The system functions as a distributed priority task scheduler, where independent worker processes continuously poll the database for pending jobs. By integrating task creation directly into application database transactions, it guarantees that jobs are only queued when
Delayed Job is a mature Ruby background processing library that handles asynchronous tasks and scheduling, though it uses a relational database rather than Redis as its primary backend.
Faktory is an open-source work server that queues, dispatches, and manages background jobs across multiple programming languages. It stores job payloads as JSON hashes in a Redis-backed queue and provides language-specific client and worker libraries that enable any language to push jobs to the server or fetch and execute them. The server includes a batch workflow orchestrator that groups jobs into batches with completion tracking for coordinating multi-step asynchronous workflows. It features a configurable job uniqueness filter that prevents duplicate enqueues within a time window, an expon
While this is a robust, language-agnostic background job server that supports Redis and scheduling, it is not a Ruby-native library and lacks direct integration with the Ruby ActiveJob framework.
Machinery is a distributed task queue and asynchronous workflow engine. It provides a system for processing heavy workloads outside the main request flow using a network of distributed background workers and a message-based job orchestrator. The project manages complex task lifecycles through sequential chaining, where results are passed between tasks, and parallel coordination, which can trigger callback tasks upon the completion of a group. It supports periodic workflow scheduling for recurring jobs and delayed execution via specific timestamps. The system includes capabilities for result
This is a distributed task queue and workflow engine written in Go, which serves as a building block for background processing but lacks the Ruby-specific integration and ActiveJob compatibility required for this category.
BullMQ is a Redis-backed message queue library and background processor designed for distributed task queueing. It functions as a distributed queue manager and task scheduler, utilizing Redis to manage asynchronous job processing and persistence. The system distinguishes itself through its role as a job workflow orchestrator, enabling the definition of complex parent-child job dependencies and hierarchies for multi-step workflows. It provides sandboxed process execution to isolate heavy workloads and prevent event loop blocking, alongside distributed rate limiting to protect downstream servic
This is a Node.js-based background job library, which does not integrate with the Ruby ecosystem or ActiveJob as requested.
Cronicle is a distributed job scheduler that replaces traditional cron with a browser-based management interface. It runs scheduled tasks across a cluster of servers with automatic failover, using a custom cron parser that intersects day-of-month and day-of-week constraints when both are specified. The system executes jobs through a plugin framework that runs command-line scripts in any language, communicating via JSON over standard input and output. The scheduler provides a web-based real-time dashboard for monitoring running jobs with live logs, resource usage charts, and progress updates.
This is a language-agnostic, distributed task scheduler and cron replacement rather than a Ruby-specific background job framework designed to integrate with ActiveJob or Ruby application code.
Hatchet is an open-source durable workflow engine and task orchestration platform. It provides a framework for building and executing fault-tolerant, multi-step pipelines as directed acyclic graphs (DAGs), with automatic retries, scheduling, and real-time observability. The system is built around durable task checkpointing, which persists execution state after each step so work can resume from the last checkpoint after a worker crash or restart, and it supports event-driven task resumption that pauses a task until a matching external event arrives. The platform distinguishes itself through it
This is a language-agnostic durable workflow engine designed for complex DAG orchestration rather than a Ruby-specific background job library integrated with ActiveJob.
Redis is a high-performance in-memory key-value store that functions as a distributed cache, message broker, and NoSQL database. It provides sub-millisecond read and write access to data stored in RAM and can operate as a vector database for indexing high-dimensional embeddings. The system supports a wide range of data storage and synchronization primitives, including the management of strings, hashes, lists, sets, and JSON documents. It enables real-time data operations through atomic transactions, hybrid persistence using snapshots and append-only logs, and high-availability configurations
This is a high-performance in-memory data store that serves as the underlying infrastructure for background job frameworks, but it is not a job processing library itself.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| mperham/sidekiq | 13.5K | Ruby | NOASSERTION | |
| resque/resque | 9.5K | Ruby | MIT | |
| tobi/delayed_job |
| 2.2K |
| Ruby |
| MIT |
| contribsys/faktory | 6.1K | Go | other |
| richardknop/machinery | 8K | Go | MPL-2.0 |
| taskforcesh/bullmq | 8.4K | TypeScript | mit |
| jhuckaby/cronicle | 5.7K | JavaScript | NOASSERTION |
| hatchet-dev/hatchet | 6.6K | Go | mit |
| tporadowski/redis | 10K | C | other |