JobRunr compared
Comparing JobRunr to some alternatives...
Below you can find an external audit where JobRunr is compared to some alternatives.
This report was created on June 19, 2020 and updated on July 09, 2021.
Feature matrix
The following tables provides an overview of each approach’s features.
Project characteristics | JobRunr | Quartz | Native JEE (Timer, ExecutorService) | Spring (scheduling support) | db-scheduler |
---|---|---|---|---|---|
Licence | LGPL v3 | Apache v2.0 | GNU GPL v2 | Apache v2.0 | Apache v2.0 |
Cost | Free | Free | Free | Free | Free |
Project health | Actively maintained since April 2020, 13 contributors, 47 releases | Actively maintained, on GitHub since 2010, 28 contributors, 26 releases | Since Java 5 | Actively maintained since 2002, 544 contributors, over 200 releases | Actively maintained since September 2015, 22 contributors, 48 releases |
Support channels | GitHub Discussions and pro tier | Google groups (forum, mailing list) | N/A | Public community and pro tier | GitHub |
Documentation | Online documentation | Online documentation | None dedicated (numerous guides) | Online documentation | GitHub README |
Participates in OpenJDK Quality Outreach Program | Yes | No | N/A | Yes | No |
Developer friendliness | 5/5 | 2/5 | 3/5 | 3/5 | 3/5 |
Core features | JobRunr | Quartz | Native JEE (Timer, ExecutorService) | Spring (scheduling support) | db-scheduler |
---|---|---|---|---|---|
Support for definition of job types | No | Yes | No | No | Yes |
Custom Trigger support | No | Yes | No | Yes | Yes (Tasks.custom) |
Cron support | Yes | Yes | No | Yes | Yes |
Asynchronous jobs | Yes | Yes | Yes | Yes | Yes |
Delayed jobs | Yes | Yes | Yes | Yes | Yes |
Recurring (scheduled) jobs | Yes | Yes | Yes | Yes | Yes |
Persistent jobs | Yes | Yes | No | Yes (with Quartz) | Yes |
Management of existing jobs | Yes | Yes | No | Yes (with Quartz) | Yes |
Advanced features | JobRunr | Quartz | Native JEE (Timer, ExecutorService) | Spring (scheduling support) | db-scheduler |
---|---|---|---|---|---|
Distributed processing | Yes, out-of-the-box | Yes | No | Yes (with Quartz) | Yes |
Transactional scheduling | Yes | Yes | No | Yes (with Quartz) | Yes |
Job execution thread pool | Yes | Yes | Yes | Yes | Yes |
Cluster safe (i.e. single job execution) | Yes, (optimistic locking) | Yes, (row locks) | No | Yes (Quartz or Shedlock) | Yes, (optimistic locking) |
Multiple job stores (e.g. in-memory and DB) | Yes | Yes | No | Yes (with Quartz) | No |
Job listeners (notifications on jobs triggers) | Yes | Yes | No | Yes (with Quartz) | No |
Decoupled scheduling and processing | Yes | Yes (?) | No | Yes (with Quartz) (?) | Yes |
Storage support | JDBC, RAM, MongoDB, Amazon Document DB, ElasticSearch, Redis | JDBC, Ram, Terracotta | NA | Multiple (Quartz or Shedlock) | JDBC |
Bonus features | JobRunr | Quartz | Native JEE (Timer, ExecutorService) | Spring (scheduling support) | db-scheduler |
---|---|---|---|---|---|
Web dashboard | Yes | No | No | No | No |
Easy scheduling using lambdas | Yes | No | No | No | Yes |
JobRunr gets a 5/5 score for developer friendliness as it:
- comes out-of-the-box with a web dashboard to present past, present and future jobs, along with execution statistics and management controls
- has great Spring Boot, Micronaut and Quarkus integration
- auto generates all SQL Tables / NoSQL data structures on first launch
- allows to start and schedule jobs in a 1-liner using nothing more than a Java 8 lambda