awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com

Background Job Scheduling Libraries

Ranking updated Jun 30, 2026

For a background job scheduler for server tasks, the first results are quartz-scheduler/quartz (Quartz is a mature Java job scheduling framework that provides cron-like scheduling, persistent job storage, thread pool management, and distributed coordination, directly matching the request for a background job scheduler library), optimalbits/bull and sidekiq/sidekiq (Sidekiq is a full-featured background job processor and scheduler for Ruby, with cron-like scheduling, retry mechanisms, a monitoring dashboard, concurrency control, and tight integration with web frameworks—covering all the key features you need). oban-bg/oban and timgit/pg-boss round out the shortlist. Compare the match explanations and check the project documentation against your requirements.

Open-source libraries for managing, executing, and scheduling asynchronous background tasks within server-side application environments.

Compare approaches and see what to test

Background Job Scheduling Libraries

Find the best repos with AI.We'll search the best matching repositories with AI.
  • quartz-scheduler/quartzquartz-scheduler avatar

    quartz-scheduler/quartz

    6,732View on GitHub↗

    Quartz is a Java job scheduling framework and task execution engine designed to manage and execute scheduled tasks within application environments. It functions as an enterprise job scheduler that persists job state and execution history to maintain reliability across system restarts. The system distinguishes itself through a decoupled architecture that separates the definition of a job's action from the trigger logic that determines when it runs. It supports distributed task coordination across multiple server nodes to provide high availability and load balancing. The framework covers a bro

    Quartz is a mature Java job scheduling framework that provides cron-like scheduling, persistent job storage, thread pool management, and distributed coordination, directly matching the request for a background job scheduler library.

    JavaCron SchedulingJob State PersistenceRecurring Job Scheduling
    View on GitHub↗6,732
  • optimalbits/bullOptimalBits avatar

    OptimalBits/bull

    16,243View on GitHub↗

    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 mature Node.js library for Redis-backed job queues that provides scheduled (cron-like) repeatable jobs, retries with backoff, persistent storage, concurrency control, priority queues, and integrates smoothly with web frameworks, with optional monitoring dashboards like Bull Board — exactly what you need for asynchronous background task management with scheduling.

    JavaScriptCron SchedulingJob Monitoring ToolsJob Priority Management
    View on GitHub↗16,243
  • sidekiq/sidekiqsidekiq avatar

    sidekiq/sidekiq

    13,540View on GitHub↗

    Sidekiq is a background job processor and queue manager for Ruby that uses Redis to manage asynchronous tasks. It functions as a distributed task scheduler capable of handling periodic, delayed, and recurring jobs across a cluster of worker processes. The project features a job monitoring dashboard and administrative web interface for visualizing system state, tracking worker performance, and managing failed or dead jobs. It provides a distributed rate limiter to control execution frequency across multiple processes. The framework covers a broad range of operational capabilities, including j

    Sidekiq is a full-featured background job processor and scheduler for Ruby, with cron-like scheduling, retry mechanisms, a monitoring dashboard, concurrency control, and tight integration with web frameworks—covering all the key features you need.

    RubyCron SchedulingJob State PersistenceConcurrency Limiters
    View on GitHub↗13,540
  • oban-bg/obanoban-bg avatar

    oban-bg/oban

    3,812View on GitHub↗

    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 PostgreSQL-backed background job processor and task scheduler for Elixir applications, offering cron-like scheduling, retries, concurrency control, and a monitoring dashboard — exactly the kind of library this search targets.

    ElixirBackground Job MonitoringCron SchedulingJob Priority Management
    View on GitHub↗3,812
  • timgit/pg-bosstimgit avatar

    timgit/pg-boss

    3,218View on GitHub↗

    pg-boss is a background task scheduler and distributed task queue that uses PostgreSQL as a reliable message broker for asynchronous job processing. It provides a system for distributing work across multiple application instances, ensuring exactly-once delivery through atomic database transactions. The project includes a cron job scheduler for automating recurring tasks and a PostgreSQL pub-sub system for fan-out event distribution. It also features a web-based management dashboard for monitoring queue statistics and controlling job lifecycles, including manual retries and cancellations. Cap

    pg-boss is a TypeScript library that provides cron-like job scheduling, retry mechanisms, persistent storage via PostgreSQL, and a web dashboard for monitoring—covering the key features of a background job scheduler exactly as requested.

    TypeScriptBackground Job MonitoringCron SchedulingRecurring Job Scheduling
    View on GitHub↗3,218
  • yigit/android-priority-jobqueueyigit avatar

    yigit/android-priority-jobqueue

    3,385View on GitHub↗

    This is an Android library for managing priority-based background job queues with persistence, retries, and concurrency control—it fits your search for a background task scheduler, though its Android-specific scope may limit use outside mobile apps.

    JavaAutomatic Retry MechanismsJob Priority ManagementJob State Persistence
    View on GitHub↗3,385
  • hangfireio/hangfireHangfireIO avatar

    HangfireIO/Hangfire

    10,015View on GitHub↗

    Hangfire is a background job scheduler and distributed task queue for .NET applications. It serves as a job orchestration framework that offloads heavy processing to background workers using a SQL-backed processor to manage job state across multiple servers. The framework distinguishes itself through reliable task scheduling, where job metadata and arguments are persisted in an external database to ensure tasks survive application restarts. It supports advanced orchestration patterns, including the ability to chain dependent tasks so that a child job triggers automatically upon the successful

    Hangfire is a comprehensive background job scheduler for .NET with cron-based scheduling, retries, persistent storage, a monitoring dashboard, concurrency control, and queue backend support, directly matching your need for managing asynchronous tasks with scheduling.

    C#Cron SchedulingJob State Persistence
    View on GitHub↗10,015
  • rq/rqrq avatar

    rq/rq

    10,653View on GitHub↗

    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 library for background task queues with Redis persistence, cron-like scheduling, automatic retry, job prioritization, and worker management — directly matching the search for a feature-rich job scheduler library.

    PythonAutomatic Retry MechanismsCron SchedulingJob Monitoring Tools
    View on GitHub↗10,653
  • taskforcesh/bullmqtaskforcesh avatar

    taskforcesh/bullmq

    8,432View on GitHub↗

    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 background job library offering scheduling, retries, monitoring, and queue management, directly fitting your need for an async task scheduler library with persistent storage and web framework integrations.

    TypeScriptBackground Job MonitoringJob Priority ManagementExecution Rate Limiters
    View on GitHub↗8,432
  • node-schedule/node-scheduleN

    node-schedule/node-schedule

    9,210View on GitHub↗

    node-schedule is a job scheduler for Node.js that executes arbitrary functions based on specific dates or recurring rules. It functions as a date-based and event-driven scheduling system for JavaScript environments, allowing for the automation of one-off events and periodic tasks. The project supports recurring job scheduling through cron-style strings and recurrence rules, as well as the ability to schedule tasks for precise, single execution dates. It includes timezone-aware date calculations to map recurring rules against global or local time offsets. The system provides a comprehensive j

    node-schedule is a job scheduling library for Node.js that reliably runs functions on cron-like schedules and specific dates, fitting the role of a background task scheduler, though it omits built-in retries, persistent storage, a monitoring dashboard, and queue backends.

    JavaScriptBackground Job MonitoringCron SchedulingRecurring Job Scheduling
    View on GitHub↗9,210
  • agenda/agendaagenda avatar

    agenda/agenda

    9,679View on GitHub↗

    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 for Node.js that supports cron-based scheduling, retries, persistent storage via MongoDB/PostgreSQL/Redis, distributed concurrency control, and includes monitoring dashboards and administrative APIs, making it a strong fit for background task management.

    HTMLCron SchedulingJob Monitoring Tools
    View on GitHub↗9,679
  • robfig/cronrobfig avatar

    robfig/cron

    14,141View on GitHub↗

    This is a scheduling library for executing recurring tasks in Go applications using cron-style timing expressions. It provides a programmatic interface to trigger functions at specific intervals based on standard calendar patterns. The system manages periodic job execution by converting timing strings into rules that determine execution times. It uses a job interface to wrap custom logic, allowing for the automation of repetitive background tasks and data synchronization within a Go runtime.

    robfig/cron is a lightweight scheduling library for running recurring tasks with cron expressions in Go, which matches the core need of scheduling background tasks but lacks the broader job management features like retry, persistent storage, or a monitoring dashboard that the full intent implies.

    GoCron SchedulingRecurring Job Scheduling
    View on GitHub↗14,141
  • automattic/kueAutomattic avatar

    Automattic/kue

    9,437View on GitHub↗

    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 with concurrency control, priority sorting, retry mechanisms, persistent storage, and a web monitoring dashboard — it matches the core need for a background job scheduler, though it may lack native cron-like recurring scheduling found in more comprehensive schedulers.

    JavaScriptAutomatic Retry MechanismsJob Priority ManagementJob Status Monitoring
    View on GitHub↗9,437
  • xuxueli/xxl-jobxuxueli avatar

    xuxueli/xxl-job

    30,282View on GitHub↗

    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 directly provides cron-based job scheduling, persistent storage, and a web dashboard for monitoring, and supports retry and concurrency across executors, making it a strong fit for managing background tasks in an application.

    JavaCron SchedulingJob State PersistenceJob Status Monitoring
    View on GitHub↗30,282
  • celery/celerycelery avatar

    celery/celery

    28,596View on GitHub↗

    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 mature distributed task queue and scheduler that provides cron-like periodic tasks, retries, multiple queue backends, concurrency control, monitoring tools, and web framework integrations, making it an excellent match for managing background jobs in applications.

    PythonDistributed Task QueuesTask QueuesDistributed Task Processors
    View on GitHub↗28,596
  • coleifer/hueycoleifer avatar

    coleifer/huey

    5,933View on GitHub↗

    .. image:: https://media.charlesleifer.com/blog/photos/huey3-logo.png

    Huey is a lightweight Python task-queue library with cron-like scheduling, retry support, persistent backends (Redis, SQLite, filesystem), and concurrency control; it covers most of your needs but lacks a built-in monitoring dashboard and explicit job prioritization.

    PythonTask Retry PoliciesPriority Queues
    View on GitHub↗5,933
  • bogdanp/dramatiqBogdanp avatar

    Bogdanp/dramatiq

    5,136View on GitHub↗

    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 Python task queue library that provides retries, concurrency control, queue backends, and job prioritization, making it a solid fit for managing background jobs—though it lacks a built-in monitoring dashboard and explicit web framework integration.

    PythonAsynchronous Task ProcessingDistributed Task QueuesDistributed Task Workers
    View on GitHub↗5,136
  • avaiga/taipyAvaiga avatar

    Avaiga/taipy

    19,247View on GitHub↗

    Taipy is a Python data application framework designed for building production-ready web interfaces that integrate AI algorithms and data pipelines. It provides a comprehensive suite for developing AI dashboards and data application interfaces. The framework includes a data pipeline orchestrator for managing complex workflows and dependencies, alongside a job scheduler for executing background tasks on recurring timetables. It also features a scenario analysis tool for performing what-if simulations by comparing different data input versions to evaluate their impact on algorithm outcomes. Add

    Taipy is a Python data application framework that includes a built-in job scheduler for executing background tasks on recurring timetables, which fits the need for a background task scheduler, though it is part of a broader framework and not a dedicated library.

    PythonAI Application FrameworksInteractive Interface BuildersAI Model Dashboards
    View on GitHub↗19,247
  • evernote/android-jobEvernote avatar

    Evernote/android-job

    5,353View on GitHub↗

    This is a background task library for Android designed to schedule and execute jobs based on specific device-state constraints. It functions as a job scheduler that manages the timing and lifecycle of background operations across different versions of the Android operating system. The library triggers background work based on resource constraints, such as network connectivity, charging status, or user idleness. It utilizes an abstraction layer to ensure consistent execution across various OS versions and uses unique identifiers to track, update, or cancel pending operations. The framework co

    This Android library schedules and executes background tasks based on device constraints, fitting the background job scheduler category, but it is platform-specific and lacks general-purpose features like web framework integration and a monitoring dashboard.

    JavaBackground Job SchedulersAndroid Background Task ManagersBackground Task Schedulers
    View on GitHub↗5,353
  • node-cron/node-cronnode-cron avatar

    node-cron/node-cron

    3,264View on GitHub↗

    This library provides a task scheduling framework for Node.js applications, enabling the automation of recurring operations using standard cron syntax. It functions as a background task manager that maintains a stateful registry of jobs, allowing for runtime inspection, modification, and lifecycle control of scheduled operations. The project distinguishes itself through support for distributed environments and resource management. It includes mechanisms to coordinate tasks across multiple application instances, ensuring that scheduled work executes exactly once to prevent overlap or resource

    node-cron is a lightweight zero-dependency library that schedules and runs jobs on cron syntax, covering the core scheduling and execution aspect of background tasks; while it lacks persistent storage, retry, and a monitoring dashboard, it is the right kind of tool for managing scheduled asynchronous work in Node.js.

    TypeScriptCron Scheduling
    View on GitHub↗3,264
  • bensheldon/good_jobbensheldon avatar

    bensheldon/good_job

    2,975View on GitHub↗

    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

    GoodJob is a Postgres-based background job backend for Ruby on Rails, implementing the Active Job interface to handle asynchronous task execution and scheduling with built-in retry, concurrency, and a monitoring dashboard, fitting the background job scheduler category.

    RubyBackground Job Monitoring
    View on GitHub↗2,975

Choosing a background queue for a Node.js application

Choose the persistence model before comparing feature lists. If the application already uses PostgreSQL, evaluate a database-backed queue. If it already operates Redis, compare Redis-backed workers. Neither choice removes the need to test retries and duplicate side effects.

Options to evaluate and requirements to verify
Project and sourceWhen to evaluate itWhat to check
pg-bossA Node.js queue backed by PostgreSQL, with scheduling, retries and support for creating jobs in database transactions.Check transaction integration with your database client and the required Node.js and PostgreSQL versions.
Graphile WorkerA PostgreSQL-backed background worker for Node.js applications, including applications using PostGraphile or PostgREST.Compare its task API and operational setup with your application. Using PostgreSQL alone does not establish which worker fits best.
BullMQA Redis-backed queue with workers and parent-child job dependencies.Include Redis persistence and operations in the decision. Check the feature comparison: some capabilities belong to BullMQ Pro rather than the open-source package.

Try this before committing

Create a job that records an external side effect, then terminate the worker before it acknowledges completion. Restart it and observe whether the effect repeats. Also test a transaction rollback, a permanently failing job and a burst of jobs. Record retry behavior, concurrency and recovery steps. Treat idempotency as an application requirement, not a promise inferred from a queue's delivery terminology.

Based on linked project documentation checked 8 September 2026. These options are a starting shortlist, not a benchmark or an exhaustive review. The trial above is a suggested evaluation, not a test we have run. How to evaluate a recommendation.

Compare the top 10 at a glance
RepositoryStarsLanguageLicenseLast push
quartz-scheduler/quartz6.7KJavaApache-2.0May 13, 2026
optimalbits/bull16.2KJavaScriptNOASSERTIONJun 9, 2026
sidekiq/sidekiq13.5KRubyNOASSERTIONJun 22, 2026
oban-bg/oban3.8KElixirapache-2.0Feb 17, 2026
timgit/pg-boss3.2KTypeScriptmitFeb 19, 2026
yigit/android-priority-jobqueue3.4KJava—Oct 21, 2022
hangfireio/hangfire10KC#otherFeb 16, 2026
rq/rq10.7KPythonNOASSERTIONJun 22, 2026
taskforcesh/bullmq8.4KTypeScriptmitFeb 19, 2026
node-schedule/node-schedule9.2KJavaScriptMITJun 19, 2025

Related searches

  • a java library for scheduling background tasks
  • a background job processor for Ruby
  • a code-first job scheduler
  • a library for scheduling tasks in Go
  • a centralized cron job scheduler
  • a library for scheduling tasks in PHP
  • an async task queue for Python background jobs
  • a python library for background task processing