Open source job schedulers

Here we have prepared a list of interesting job schedulers that are available. We had the opportunity to try JobRunr and used db-scheduler on one of our projects.

  1. Quartz Scheduler:
    • Description: Quartz is a powerful and widely-used job scheduling library for Java. It supports complex scheduling, job persistence, clustering, and transactional behavior.
    • Features: Flexible scheduling, persistent job storage, clustering support, and integration with various databases.
    • GitHub: Quartz Scheduler
  2. JobRunr:
    • Description: JobRunr is a modern, open-source job scheduling library for Java that uses the database for persistence. It is designed to be simple and developer-friendly.
    • Features: Persistent job storage, distributed execution, retries, and built-in dashboard for monitoring.
    • GitHub: JobRunr
  3. db-scheduler:
    • Description: A lightweight, persistent job scheduling library for Java that uses your database for job storage and management.
    • Features: Simple API for job scheduling, supports various SQL databases (MySQL, PostgreSQL, Oracle, etc.), persistent job storage with transactional guarantees, cron-like scheduling, handles retries and failures.
    • GitHub: db-scheduler
  4. ShedLock:
    • Description: ShedLock ensures that your scheduled tasks execute at most once at the same time, even in a distributed environment. It integrates well with Spring.
    • Features: Distributed locks using the database, Spring integration, and supports multiple databases like MongoDB, MySQL, and PostgreSQL.
    • GitHub: ShedLock
  5. Easy Batch:
    • Description: Easy Batch is a lightweight batch processing framework that makes it easy to process large volumes of data.
    • Features: Declarative job definition, built-in job persistence, and easy integration with databases.
    • GitHub: Easy Batch
  6. Elastic-Job:
    • Description: Elastic-Job is a distributed job scheduling framework for Java. It provides flexible job scheduling and execution, with job persistence in databases.
    • Features: Distributed scheduling, fault-tolerant, sharding, and job persistence.
    • GitHub: Elastic-Job
  7. EJavaCron:
    • Description: EJavaCron is a simple and lightweight Java library for scheduling tasks using cron expressions.
    • Features: Cron-based scheduling, lightweight, and easy to integrate.
    • GitHub: EJavaCron
  8. OpenSymphony Quartz:
    • Description: Another variation of Quartz Scheduler maintained by the OpenSymphony community.
    • Features: Similar to Quartz Scheduler with flexible job scheduling and persistent storage.
    • GitHub: OpenSymphony Quartz

These libraries and frameworks should provide a good starting point for implementing job scheduling in your Java applications, with varying degrees of complexity and features to suit your needs.

Related Post

Leave a Reply

Your email address will not be published. Required fields are marked *