This is release candidate 1 for v4.0.0, biggest release since v1.0.0.
It contains a lot of improvements... stay tuned!
needed to recreate the release due to publishing problems to Maven Central.
Draft of improvements and breaking changes
New features
- Job Analysis Performance mode: when a job is analyzed for the first time, JobRunr checks whether it can be cached. If so, all subsequent calls will be a lot faster. If job is not cacheable this is displayed in the dashboard.
- Updated Spring boot starter with
- Support for @Recurring annotation for Recurring jobs
- Support for disabled Recurring jobs using "-"
- Support for multiple datasources in Spring (a specific datasource for JobRunr)
- Support for Spring Actuator Health Endpoint
- Support for Spring Actuator Metrics Endpoint
- New Micronaut feature with
- Support for @Recurring annotation for Recurring jobs
- Support for disabled Recurring jobs using "-"
- Support for multiple datasources in Micronaut (a specific datasource for JobRunr)
- Support for Micronaut Health Endpoint
- Support for Micronaut Metrics Endpoint
- New Quarkus extension with
- Support for @Recurring annotation for Recurring jobs
- Support for disabled Recurring jobs using "-"
- Support for multiple datasources in Quarkus (a specific datasource for JobRunr)
- Support for Quarkus Health Endpoint
- Support for Quarkus Metrics Endpoint
- CPU Allocation Irregularities detection: as JobRunr uses NTP and timeouts to detect if a
BackgroundJobServeris still alive, it is important that the JVM does not stop too long. JVM's can stop due to full garbage collection taking too long or if they are running on shared cloud hardware where resources are stealed by other processes. JobRunr now detects this and shows a warning in the dashboard as it can impact the cluster. - JobRequest and JobRequestHandler: this release introduces the
JobRequestSchedulera new way to create jobs using objects instead of lambda's. - Static method support: JobRunr can now create jobs using lambda's referencing static method
Breaking changes:
- the pollIntervalInSeconds can not be smaller than 5 or else an exception will be thrown
- StateChanges are now validated. This will impact people who are using
ElectStateFilters and are changing states that are not valid (e.g. fromFailedtoSucceeded, fromProcessingtoProcessing). - JobRunr.configure()....initialize() now returns a
JobRunrConfigurationResultwhich contains theJobSchedulerand theJobRequestScheduler BackgroundJobServerConfiguration andWorkerCountPolicy(BackgroundJobServerWorkerPolicy backgroundJobServerWorkerPolicy)has been renamed toBackgroundJobServerConfiguration andBackgroundJobServerWorkerPolicy(BackgroundJobServerWorkerPolicy backgroundJobServerWorkerPolicy)