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

Code-First Job Scheduler Libraries

Ranking updated Jun 30, 2026

For a code-first job scheduler, the first results are quartz-scheduler/quartz (Quartz is a comprehensive Java job scheduling framework that lets you define jobs and triggers programmatically in code, with full support for cron expressions, interval scheduling, job persistence, and concurrency control—exactly the code-first scheduler you’re looking for), sidekiq/sidekiq and hangfireio/hangfire (Hangfire is a ). riverqueue/river and agronholm/apscheduler round out the shortlist. Compare the match explanations and check the project documentation against your requirements.

Discover open-source libraries for defining and managing recurring background tasks directly within your application code.

Code-First Job Scheduler 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 comprehensive Java job scheduling framework that lets you define jobs and triggers programmatically in code, with full support for cron expressions, interval scheduling, job persistence, and concurrency control—exactly the code-first scheduler you’re looking for.

    JavaCron SchedulingJob State Persistence
    View on GitHub↗6,732
  • 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 background job processor and scheduler for Ruby that lets you define jobs in code and schedule recurring tasks via cron-like expressions (through extensions like sidekiq-cron), with robust persistence, concurrency control, and the option to run in-process or standalone — exactly the kind of programmatic scheduler this search aims for.

    RubyCron SchedulingJob State PersistenceConcurrency Limiters
    View on GitHub↗13,540
  • 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 .NET background job scheduler that lets you define recurring jobs programmatically using cron expressions and intervals, with database-backed persistence and concurrency control, exactly matching the need for a code-first job scheduler.

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

    riverqueue/river

    5,252View on GitHub↗

    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 Go-based transactional job queue and scheduler that lets you define and manage recurring jobs programmatically, supports periodic/delayed scheduling with PostgreSQL persistence, concurrency control, and runs in-process or standalone — squarely matching your code-first job scheduler requirements.

    GoBackground Job DefinitionsFixed Interval SchedulersJob State Persistence
    View on GitHub↗5,252
  • agronholm/apscheduleragronholm avatar

    agronholm/apscheduler

    7,539View on GitHub↗

    APScheduler is a Python task scheduler designed to execute functions at specific times or recurring intervals. It functions as an asynchronous background scheduler and distributed job dispatcher, allowing tasks to run concurrently with application lifecycles and web server request handling. The system distinguishes itself through a persistent job store that saves schedules and task states in external databases, ensuring continuity across process restarts. It separates task scheduling from execution by dispatching jobs to distributed workers in separate processes to prevent execution bottlenec

    APScheduler is a mature Python library that lets you define and manage recurring jobs entirely in code, supporting cron expressions, interval delays, persistent job stores, and concurrency controls—exactly the programmatic code-first scheduler you need.

    PythonJob State Persistence
    View on GitHub↗7,539
  • go-co-op/gocrongo-co-op avatar

    go-co-op/gocron

    7,071View on GitHub↗

    gocron is a task scheduling library for Go designed to automate recurring tasks using crontab expressions, fixed durations, and specific calendar dates. It functions as a concurrent job manager and execution monitor that tracks task lifecycles and performance. The project provides distributed task scheduling through leader election and distributed locking to prevent duplicate job execution across multiple nodes. It further distinguishes itself with a concurrency management system that implements singleton constraints and global execution quotas to protect system resources. The scheduler cove

    gocron is a Go library that lets you define and manage recurring jobs entirely in code using cron expressions, intervals, or specific dates, with built-in concurrency control and distributed locking, making it a direct fit for a code-first job scheduler.

    GoCron SchedulingConcurrency LimitersTask Scheduling
    View on GitHub↗7,071
  • dbader/scheduledbader avatar

    dbader/schedule

    12,245View on GitHub↗

    This project is a lightweight Python scheduling library used for managing recurring jobs and automating the execution of functions within a single process. It serves as an event-based task scheduler that triggers functions at specific intervals or weekdays. The library utilizes human-readable timing syntax to schedule periodic function calls. It supports the organization of timed workflows through job tag filtering and provides mechanisms for scheduler state inspection to track planned execution times. The system handles both periodic and specific job scheduling with timezone support. It inc

    A lightweight Python library that schedules recurring jobs directly in code using human-readable intervals — it's a true code-first scheduler, though it lacks cron expressions and persistence.

    PythonIn-Process Task SchedulersTask Scheduling
    View on GitHub↗12,245
  • 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 code-first job scheduler that lets you define recurring jobs programmatically as Elixir workers, supporting cron expressions, PostgreSQL-backed persistence, concurrency controls, and both in-process and standalone deployment—matching every feature you listed.

    ElixirCron Scheduling
    View on GitHub↗3,812
  • 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 Node.js job scheduler that lets you define and manage recurring jobs entirely in code using cron expressions or intervals, with database persistence and distributed locking for concurrency — exactly the programmatic scheduler you're looking for.

    HTMLCron Scheduling
    View on GitHub↗9,679
  • 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 code-first distributed task queue where you define periodic and scheduled jobs programmatically in Python, supporting cron expressions, intervals, persistence, and concurrency control, making it exactly the code-first scheduler this search targets.

    PythonDistributed Task QueuesTask QueuesDistributed Task Processors
    View on GitHub↗28,596
  • apache/airflowapache avatar

    apache/airflow

    45,902View on GitHub↗

    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 code-first workflow scheduler that defines jobs as Python DAGs with cron expressions, interval scheduling, persistent state, and concurrency controls—exactly matching the search for a programmatic job scheduler.

    PythonData Pipeline OrchestratorsWorkflow OrchestrationWorkflow Orchestration Engines
    View on GitHub↗45,902
  • 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 Node.js library for scheduling jobs entirely in code using cron expressions and recurrence rules, which matches the code-first scheduler intent — it lacks built-in persistence and concurrency control, but squarely fits the category as a time-based job scheduler.

    JavaScriptCron Scheduling
    View on GitHub↗9,210
  • 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 task queue that lets you define jobs programmatically and supports cron-like scheduling for recurring execution, covering the core need for a code-first job scheduler even if its primary focus is task queuing.

    PythonCron SchedulingWorker Pool Management
    View on GitHub↗10,653
  • hibiken/asynqhibiken avatar

    hibiken/asynq

    12,914View on GitHub↗

    Asynq is a distributed background job processing framework for Go applications. It manages asynchronous task queues by offloading heavy operations to persistent storage, allowing the main application to remain responsive while background workers handle workloads. The system utilizes Redis to manage task state, concurrency, and message distribution across multiple worker instances. It employs atomic Lua scripting and sorted sets to ensure reliable job acquisition, precise scheduling of delayed tasks, and fault-tolerant processing through a two-stage acknowledgement flow. The framework support

    Asynq is a Go framework that lets you define and schedule background jobs programmatically in code, with support for delayed tasks via Redis and concurrency control through worker pools, which aligns well with the request for a code-first recurring scheduler—though cron-like expression support is not explicitly confirmed in the description.

    GoDistributed Task QueuesJob SchedulersPersistent Background Workers
    View on GitHub↗12,914
  • dagster-io/dagsterdagster-io avatar

    dagster-io/dagster

    14,974View on GitHub↗

    Dagster is a data orchestration platform designed to manage the entire lifecycle of data assets through declarative modeling and version-controlled code. It functions as a workflow engine that treats data assets as first-class primitives, allowing teams to define, schedule, and monitor complex pipelines while maintaining clear visibility into lineage, dependencies, and data quality. The platform distinguishes itself by using a code-as-configuration framework that enables standard software engineering practices, such as unit testing and local mocking, to be applied directly to data workflows.

    Dagster is a code-first data orchestration platform that lets you define, schedule, and monitor recurring jobs using Python code with cron-like expressions and interval scheduling, making it a solid match for a programmatic job scheduler — though its focus on data pipelines may include more infrastructure than a generic scheduler.

    PythonData Pipeline OrchestrationDeclarative OrchestrationWorkflow Orchestration Engines
    View on GitHub↗14,974
  • breejs/breebreejs avatar

    breejs/bree

    3,289View on GitHub↗

    Bree is a Node.js and JavaScript job task scheduler with worker threads, cron, Date, and human syntax. Built for @ladjs, @forwardemail, @spamscanner, @cabinjs.

    Bree is a Node.js job scheduler that lets you define recurring jobs programmatically with cron, Date, or human syntax, runs each job in a worker thread for concurrency, and can be used in-process — a direct fit for a code-first scheduler, though it does not emphasize built-in job persistence.

    JavaScriptJob Queues
    View on GitHub↗3,289
  • 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 code-first job scheduler for Node.js that lets you define recurring jobs programmatically using cron expressions, with built-in concurrency control via overlap prevention; it lacks built-in job persistence but covers most other required features.

    TypeScriptCron Scheduling
    View on GitHub↗3,264
Compare the top 10 at a glance
RepositoryStarsLanguageLicenseLast push
quartz-scheduler/quartz6.7KJavaApache-2.0May 13, 2026
sidekiq/sidekiq13.5KRubyNOASSERTIONJun 22, 2026
hangfireio/hangfire
10K
C#
other
Feb 16, 2026
riverqueue/river5.3KGoMPL-2.0Jun 15, 2026
agronholm/apscheduler7.5KPythonMITApr 6, 2026
go-co-op/gocron7.1KGoMITMay 25, 2026
dbader/schedule12.2KPythonMITMay 25, 2024
oban-bg/oban3.8KElixirapache-2.0Feb 17, 2026
agenda/agenda9.7KHTMLNOASSERTIONJun 19, 2026
celery/celery28.6KPythonNOASSERTIONJun 16, 2026

Related searches

  • a background job scheduler for server tasks
  • a centralized cron job scheduler
  • a library for scheduling tasks in C#
  • a library for scheduling tasks in Go
  • a java library for scheduling background tasks
  • a library for scheduling recurring background tasks
  • a library for scheduling tasks in PHP
  • a workflow orchestration tool for data pipelines