For redis backed queues, the first results are optimalbits/bull (Bull is a robust Node.js message queue and background job processor backed by Redis that natively supports delayed execution, retries, priority handling, and rate limiting), taskforcesh/bullmq (BullMQ is a Redis-backed message queue and background job processor that fully supports delayed tasks, retries, rate limiting, and priority workflows, making it a comprehensive implementation of the requested system) and rq/rq (RQ is a Python-based distributed task queue that uses Redis as its backend, providing background job processing, scheduling, prioritization, retries, and monitoring tools to fit the requested message queue category). resque/resque and jrallison/go-workers round out the shortlist. Compare the match explanations and check the project documentation against your requirements.
Explore open-source Redis task queue repositories to manage background jobs and message queues in your applications.
Bull is a Node.js library for managing distributed jobs and message queues using Redis as the primary data store. It functions as a distributed task worker, job scheduler, and priority queue manager designed to handle asynchronous workloads across multiple processes. The project distinguishes itself by providing a persistent communication channel that decouples servers through the exchange of serializable data objects. It ensures distributed system reliability by detecting stalled tasks and recovering from process crashes to ensure every queued job is completed. The system covers a broad ran
Bull is a robust Node.js message queue and background job processor backed by Redis that natively supports delayed execution, retries, priority handling, and rate limiting.
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
BullMQ is a Redis-backed message queue and background job processor that fully supports delayed tasks, retries, rate limiting, and priority workflows, making it a comprehensive implementation of the requested system.
rq is a distributed task queue and background worker system for Python that uses a Redis backend to decouple task submission from execution. It functions as a reliable message queue and task scheduler, allowing Python functions or asyncio coroutines to be processed asynchronously across multiple worker processes. The project distinguishes itself through reliable queuing mechanisms that prevent job loss during worker crashes using atomic operations. It provides specialized orchestration capabilities, including the prevention of duplicate jobs, job execution prioritization, and the ability to m
RQ is a Python-based distributed task queue that uses Redis as its backend, providing background job processing, scheduling, prioritization, retries, and monitoring tools to fit the requested message queue 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 Redis-backed background job processing library for Ruby that supports priority queues, failure handling, and a monitoring dashboard, though it lacks built-in delayed task scheduling.
Go-workers is a background job processor for Go applications that coordinates asynchronous task execution using Redis queues. It implements the Sidekiq-compatible wire protocol and payload structures, allowing interoperability with existing background processing ecosystems and clients. The system manages task distribution through atomic list operations on a shared data store to guarantee reliable message delivery and prevent lost tasks during abrupt worker failures. It features configurable concurrency limits to control throughput per queue by dispatching incoming tasks across bounded synchr
Go-workers is a Redis-backed background job processor for Go that handles task distribution and concurrency control, though it lacks built-in support for delayed tasks and a comprehensive monitoring UI.
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
Faktory is a standalone Redis-backed background job server with multi-language worker support, scheduled tasks, and a management UI, matching the core message queue intent though its workflow and polyglot architecture differ slightly from a standard embedded queue library.
Kue is a Redis-backed job queue library for Node.js that provides a complete system for defining, scheduling, and processing background work. It stores job metadata and state in Redis lists and sorted sets, enabling persistent, in-memory operations with configurable concurrency control and priority-sorted processing. The library includes a RESTful HTTP API for managing jobs and a web-based monitoring dashboard for inspecting job status, progress, and logs. The system distinguishes itself through its event-driven worker model, where workers listen for job events via Redis pub/sub and process j
Kue is a Redis-backed job queue library for Node.js featuring background job processing, priority queues, retry handling, and a built-in monitoring dashboard, though it lacks active maintenance and native delayed task support without extra configuration.
Bee-queue is a Node.js background processing system that uses Redis for job queueing and persistence. It is designed to offload heavy tasks from the main execution thread to background workers to maintain application responsiveness. The project provides distributed job processing, allowing worker nodes to run across multiple processes to handle large volumes of tasks concurrently. It ensures reliable task execution through automatic retries and the recovery of stalled processes. Its capability surface covers asynchronous task scheduling for delayed jobs, concurrency control for worker nodes,
Bee-queue is a Node.js background job processing system backed by Redis that handles distributed tasks, retries, and scheduled jobs, though it lacks a built-in monitoring dashboard.
.. image:: https://media.charlesleifer.com/blog/photos/huey3-logo.png
Huey is a lightweight Python task queue that supports Redis as its underlying backend, offering background job processing, retries, and scheduled tasks, though it lacks a built-in monitoring UI.
Celery is an asynchronous job processor and distributed task queue designed to offload time-consuming operations to background worker nodes. By utilizing a message-passing architecture, it decouples task producers from consumers, allowing applications to maintain responsiveness while scaling workloads across multiple isolated environments. The system functions as a distributed workload orchestrator that manages the lifecycle of deferred operations through persistent queues. It distinguishes itself by providing a pluggable transport abstraction, which allows the core task logic to remain indep
Celery is a distributed task queue and background job processor that fully supports Redis as a message broker, covering scheduled tasks, retries, rate limiting, and monitoring tools.
Distributed delayed jobs in nodejs. Resque is a background job system backed by Redis (version 2.6.0 and up required). It includes priority queues, plugins, locking, delayed jobs, and more! This project is a very opinionated but API-compatible with Resque and Sidekiq (caveats). We also implement…
taskrabbit/node-resque is a Redis-backed message queue and background job processing system for Node.js that provides priority queues, delayed jobs, and Redis-powered concurrency control.
A simple high-performance Redis message queue for Node.js.
This Node.js message queue uses Redis as its underlying store and supports background jobs, delayed tasks, retries, priorities, and concurrency control.
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 a Redis-backed background job processor for Ruby that handles asynchronous task execution, priority queues, and job scheduling, though it lacks a built-in UI in its free version to fully cover the monitoring requirement.
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
Machinery is a distributed task queue and asynchronous workflow engine supporting Redis as a backend along with features like background processing, scheduled tasks, and retries, though it lacks a built-in monitoring dashboard.
Dramatiq is a distributed task queue and workload manager used to offload function execution to background workers. It functions as an asynchronous task orchestrator that enables the distribution of computational tasks across a cluster using a pluggable transport layer supporting RabbitMQ and Redis. The framework provides specialized tools for complex task orchestration, including the ability to link background jobs into sequences, pipelines, and barriers. It further manages distributed concurrency through the use of shared mutexes, rate limiters, and exponential backoff retries to prevent re
Dramatiq is a distributed task queue and workload manager that supports Redis as a transport layer, providing background job processing, retries, rate limiting, and priority queues for Python applications.
Redis Simple Message Queue
This is a lightweight Redis-backed message queue for Node.js that handles FIFO messaging, though it lacks built-in advanced features like scheduled tasks, priority queues, and a monitoring dashboard.
Vert.x Kue is a priority task queue developed with Vert.x and backed by Redis. It's a Vert.x implementation version of Automattic/kue.
Vert.x Kue is a Redis-backed priority task queue built for the Vert.x ecosystem, fitting the category well despite missing a built-in monitoring dashboard and advanced scheduling features.
Better Queue for NodeJS
Better Queue is a Node.js task processing library that uses Redis as a backend for job queues, supporting features like concurrency control and retries, though it lacks a built-in monitoring dashboard.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| optimalbits/bull | 16.2K | JavaScript | NOASSERTION | |
| taskforcesh/bullmq | 8.4K | TypeScript | mit | |
| rq/rq |
| 10.7K |
| Python |
| NOASSERTION |
| resque/resque | 9.5K | Ruby | MIT |
| jrallison/go-workers | 1.4K | Go | MIT |
| contribsys/faktory | 6.1K | Go | other |
| automattic/kue | 9.4K | JavaScript | MIT |
| bee-queue/bee-queue | 4K | JavaScript | NOASSERTION |
| coleifer/huey | 5.9K | Python | mit |
| celery/celery | 28.6K | Python | NOASSERTION |