A persistent, cluster-friendly task scheduler for Java applications using a single database table.
db-scheduler is a persistent, cluster-friendly task scheduler for Java applications. It allows developers to schedule and execute background tasks (like recurring jobs or one-time executions) with guarantees that only one instance in a cluster runs a task at a time. It uses a single database table for persistence, making it simpler and lighter than alternatives like Quartz.
Java developers building applications that require reliable, clustered background job processing, especially those looking for a lightweight, embeddable scheduler without the complexity of larger frameworks.
Developers choose db-scheduler for its simplicity, high performance, and minimal dependencies. It offers cluster coordination out-of-the-box with a single-table persistence model, reducing operational overhead compared to heavier schedulers while maintaining robustness for production use.
Persistent cluster-friendly scheduler for Java
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses a single database table with optimistic locking or select-for-update to ensure tasks are executed by only one instance in a cluster, preventing duplicates in distributed environments.
Benchmarked to handle 2,000–10,000 executions per second with configurable polling strategies like lock-and-fetch, making it suitable for high-load scenarios as noted in user testimonials.
Depends only on SLF4J, keeping it lightweight and easy to embed into existing Java applications without bloating the dependency graph.
Supports static and dynamic recurring tasks, one-time tasks, and custom schedules via cron, fixed delay, or daily intervals, with persistent task data for multi-tenant use cases.
Key optimizations like the lock-and-fetch polling strategy and priority support are not fully available across all databases; for example, MySQL below version 8.x lacks descending index support for priorities.
Requires developers to manually create and update database tables using provided SQL scripts, adding setup overhead compared to auto-migrating frameworks.
Lacks built-in UI or detailed execution history; teams must rely on third-party extensions like db-scheduler-ui for admin operations, increasing integration complexity.
db-scheduler is an open-source alternative to the following products: