For a background job queue for web applications, the strongest matches are yigit/android-priority-jobqueue (This Android library provides priority-based job queues with customizable), resque/resque (Resque is a Ruby background job processing library that) and beanstalkd/beanstalkd (Beanstalkd is a distributed work queue server that handles). optimalbits/bull and riverqueue/river round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
Find the best background job queue libraries for your stack. Compare top-rated GitHub repositories by activity and features to pick the right one.
This Android library provides priority-based job queues with customizable retry policies, scheduling, and concurrency control, making it a fit for background job processing, though it is platform-specific to Android.
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 Ruby background job processing library that provides priority-ordered queues, retry mechanisms (via failure queues and plugins), worker concurrency management, and extensible hooks — covering the core of custom retry policies, priority queues, concurrency control, and dead letter handling this search asks for.
Beanstalkd is a distributed work queue server designed for asynchronous job processing. It functions as a standalone server that distributes background tasks between producers and consumers to improve application responsiveness and throughput. The system organizes tasks using numeric priority levels to ensure critical work is processed first. It manages the job lifecycle through discrete states and uses a simple line-based text protocol over TCP for communication. To ensure reliability, the server persists job data to a sequential disk log, allowing the queue state to be recovered after a sy
Beanstalkd is a distributed work queue server that handles priority-based job scheduling and disk-backed persistence, fitting the background job processing category, but it does not offer custom retry policies, pluggable backends, or explicit dead letter handling for full flexibility.
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 Node.js library for managing distributed job queues and scheduling with support for retries, priority, concurrency, and crash recovery, fitting the background job processing need well, though it is tightly coupled to Redis rather than offering fully pluggable backends.
River is a transactional job queue and distributed job scheduler for Go that uses PostgreSQL for persistence and state management. It functions as a resumable task framework, allowing long-running background work to be broken into persisted steps that can resume from the last saved checkpoint after a failure. The system ensures strict data consistency by allowing background tasks to be enqueued and completed within the same database transaction as the primary application data. It distinguishes itself through a coordinator model that employs leader election to manage periodic and delayed tasks
River is a transactional job queue and distributed scheduler for Go backed by PostgreSQL, offering extensive customization through lifecycle hooks, pluggable drivers, and scheduling—it fits your need for a configurable background job processor, though priority queues and dead letter handling are not prominently featured.
Oban is a distributed background job processing system and task scheduler that uses PostgreSQL for transactional job storage and reliable execution across multiple nodes. It serves as a PostgreSQL-backed background worker and job queue, coordinating task execution and concurrency through a relational database to ensure delivery guarantees. The system differentiates itself through a distributed workflow orchestrator capable of managing multi-step processing pipelines, dependent job sequencing, and shared context. It provides advanced orchestration tools including job batching, chunked processi
Oban is a distributed background job processor and task scheduler built on PostgreSQL, offering extensive customization through hooks, batching, priority queues, and concurrency control, but its tight coupling to PostgreSQL means it does not support pluggable backends as requested.
Inngest is a durable execution framework and event-driven automation engine designed to orchestrate background workflows. It enables developers to build resilient, stateful processes by memoizing function steps, ensuring that long-running tasks can automatically resume from the last successful operation after failures, timeouts, or infrastructure restarts. The platform distinguishes itself through its event-driven architecture, which uses a schema-validated bus to trigger functions and coordinate complex, multi-step logic. It employs an onion-model middleware approach for cross-cutting concer
Inngest is a durable execution framework that orchestrates background workflows via events, automatic retries, and step memoization — it fits the background job processing category but leans toward workflow orchestration rather than a traditional job queue with explicit priority queues or dead letter handling.
Airflow is a platform for programmatically authoring, scheduling, and monitoring complex data pipelines. It functions as a workflow automation engine that manages the lifecycle of recurring business processes by executing code-defined task dependencies. By representing workflows as directed acyclic graphs, the system ensures that task execution order and data flow are explicitly defined and reliably maintained across distributed computing environments. The platform distinguishes itself through a highly modular, provider-based architecture that decouples core orchestration logic from external
Apache Airflow is a workflow orchestration platform that schedules and monitors distributed task execution with retry policies, scheduling, and error handling, directly delivering the customizable background job processing you need.
This project is a PHP framework for offloading time-consuming tasks to background workers, enabling asynchronous processing to keep the main application request cycle responsive. It provides a unified interface for managing background job queues, allowing developers to decouple application logic from specific storage backends and message brokers. The system distinguishes itself through a driver-based abstraction layer that supports diverse infrastructure, including relational databases, Redis, and RabbitMQ. It manages the full lifecycle of background tasks, offering capabilities for delayed s
This Yii2 extension provides a job queue with pluggable backends, making it a solid choice for Yii2 apps, but it does not clearly document the advanced job behavior customization you're looking for.
Agenda is a persistent background job scheduler and distributed task runner for Node.js applications. It functions as a cron job manager and task queue that ensures background processes survive application restarts by storing job state and metadata in a database. The system coordinates execution across multiple worker instances using distributed locking mechanisms to prevent duplicate processing. It supports flexible scheduling via cron expressions or specific dates and includes a pluggable storage interface for backends such as MongoDB, PostgreSQL, and Redis. The platform provides controls
Agenda is a persistent background job scheduler and distributed task runner for Node.js that supports cron scheduling, retry policies, and pluggable storage backends—fitting the core need for a job queue with customization, though priority queues and dead letter handling aren't explicitly highlighted.
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 Redis-backed distributed task queue for Python that includes job scheduling, prioritization, automatic retries, and concurrency control—squarely in the background job processing category—though it lacks pluggable backends and explicit dead letter handling.
Quartz.NET is a job scheduler for .NET applications designed to schedule and execute programmatic tasks. It functions as a distributed task orchestrator and enterprise task orchestrator, capable of managing recurring jobs with concurrency limits and complex intervals. The system provides high availability through a clustered execution model that balances loads and provides fail-over redundancy across multiple server instances. It utilizes a relational database job store to persist job and trigger states, ensuring that scheduled tasks survive application restarts. The framework includes capab
Quartz.NET is a job scheduler for .NET that handles scheduled and recurring tasks with concurrency control and clustering, fitting the core need for background job processing even though it may not include advanced features like priority queues or dead letter handling out of the box.
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 built on Redis that supports automatic retries, delayed scheduling, concurrency control, and priority queues — a genuine job queue that matches your needs, though it is Redis-only and may lack explicit dead letter handling.
Good Job is a background job processor for Ruby on Rails that utilizes a PostgreSQL database as its primary storage engine. By leveraging relational database transactions, it ensures persistent and reliable task execution, integrating directly with the Active Job framework to handle asynchronous operations and recurring job scheduling within existing application environments. The system distinguishes itself through an in-process execution model that allows background workers to run within the same process as the web server, simplifying deployment by removing the need for separate worker servi
Good Job is a background job processor for Rails that offers job scheduling, concurrency control, priority queues, and retry policies, but it is tied to PostgreSQL and Active Job rather than supporting pluggable backends, so it fits the category well while missing a few requested features.
JOB, make your short-term command as a long-term job. 将命令行规划成任务的工具
This tool lets you turn short-lived commands into long-running jobs with scheduling via crontab and support for retry and concurrency, but it is a narrowly scoped command‑line wrapper rather than a full job‑queue system with priority queues, dead‑letter handling, or pluggable backends.
go-job is a flexible and extensible job scheduling and execution library for Go. It enables you to register, schedule, and manage jobs with arbitrary function signatures, supporting custom executors, priorities, and advanced scheduling options such as cron expressions and delayed execution.
go-job is a Go library for scheduling and executing background jobs with support for custom executors, priorities, and cron-based scheduling, which fits the requested category but lacks explicit mention of retry policies, dead letter handling, or pluggable backends.
xxl-job is a distributed task scheduling platform and job orchestrator designed to manage and trigger timed jobs across a cluster of remote executor nodes. It provides a centralized system for scheduling tasks, linking dependent jobs, and managing complex execution lifecycles through a relational database that persists configurations and logs. The platform distinguishes itself through a web-based interface for cron job management, allowing users to create and update scheduled tasks without modifying source code. It supports cross-language task execution by triggering logic on third-party exec
xxl-job is a distributed task scheduling platform that supports cron-based scheduling, distributed execution, and failure handling, which fits the core need for a customizable background job processing tool, though it lacks explicit priority queues and pluggable backend flexibility.
| रिपॉजिटरी | स्टार्स | भाषा | लाइसेंस | अंतिम पुश |
|---|---|---|---|---|
| yigit/android-priority-jobqueue | 3.4K | Java | — | |
| resque/resque | 9.5K | Ruby | MIT | |
| beanstalkd/beanstalkd | 6.7K | C | NOASSERTION | |
| optimalbits/bull | 16.2K | JavaScript | NOASSERTION | |
| riverqueue/river | 5.3K | Go | MPL-2.0 | |
| oban-bg/oban | 3.8K | Elixir | apache-2.0 | |
| inngest/inngest | 5.5K | Go | NOASSERTION | |
| apache/airflow | 45.9K | Python | Apache-2.0 | |
| yiisoft/yii2-queue | 1.1K | PHP | BSD-3-Clause | |
| agenda/agenda | 9.7K | HTML | NOASSERTION |