Celebration time - JobRunr Release Candidate v7.0.0-RC.0 is now available 🖥️
Are we ready to press ‘UPDATE’ button and go to celebrate?🥳
Our developers have been working hard these past months to provide you with new improved version. We would like thank all the companies that tested the beta version before this release to give you these features.
As we are about to launch the new v7.0.0 in the upcoming weeks, we want to have your input and your feedback before releasing the final version. Be the first one to try out and see if it runs smoothly for your use case. As always, your input is very important for releasing the final version.
The release candidate is now available via Maven Central and GitHub/JobRunr. Update now and explore new features in JobRunr Pro and JobRunr OSS!
👉 please be aware that we’re still in the process of updating our documentation. Thank you for your understanding.
What is new?
Pro Version:
New Features
- Improved OpenId authentication with authorization: Add full authorization support in the dashboard based on rules #188
- Dashboard GDPR support: Allow to redact jobs so that no confidential information (e.g. job parameters) can be leaked. #194
- Rate Limiting: Rate Limit the amount of jobs using a
ConcurrentJobRateLimiter
and theSlidingTimeWindowRateLimiter
#202 - Support for Virtual Threads: Add support for Virtual Threads if on Java 21 or higher #906
- Dashboard: Add extra columns to job tables and allow to configure columns visibility #250
- Cursor based Job Page: Add initial support for Cursor Based Paging to support multi dashboard #212
InMemoryStorageProvider
now allows for a pollInterval as small as 200ms (useful for testing purposes) (issue #619) #909- Dynamic can reserve a certain amount of the total workers using
FixedSizeWorkerPoolDynamicQueuePolicy
#237 - Allow updating labels (issue #239) #251
- Allow to delete recurring jobs automatically using a
deleteAt
hint #257 - Add support for
JobProgressFilter
to get notified on job progress #282
Enhancements
- BackgroundJobServer Master Tasks are now spread over multiple threads for smooth processing. #280
- Java 8 compatibility guaranteed #882
- Use time-based UUID’s which are better for database performance #890
- Significantly decrease JSON size. #892
- Improve Dynamic Queue Policy in combination with rate limiters by slowly phasing out unused dynamic queues #216
- Refactor the
StorageProvider
and cleanup deprecated methods #893 - Workflow improvement: jobs within batch jobs can now use continuations while batch jobs themselves have continuations #201
- Workflow improvement: jobs can now continueOn success and continueOn failure or just onFailure in #260
- Performance improvement: prevent Optimistic Locking Exceptions and use
select for update skip locked
if the database supports it #904: - Performance improvement: improved SQL indexes (thanks to the customers who where willing to share their data)
- Support for unlimited batch jobs (issue #254) #265
- Dashboard: batch jobs are now directly visible on the jobs page #250
- [Micrometer] Improve Job Metrics (issue #242) #274
- Wait for database migrations to finish before starting background job processing #266
- Fetch all jobs
SCHEDULED
at the same Instant #273 - JobRunr let’s you know when your JobFilters are too slow via a warning. #961
Fixed bugs
- [Micronaut] Fix Bug Micronaut Integration fails if multiple servers are used #852
- [MicroMeter] Make sure MicroMeter Job metrics is also working with Fluent configuration #207
- Fix when moving from JobRunr OSS v4 to JobRunr Pro v6 #880
- Refactor batch jobs to not use metadata for succeeded child jobs. (issue #217)
- Fix bug in
MigrateFromV5toV6Task
related RecurringJobs migration #238 - Allow to gracefully stop the
BackgroundJobServer
#272 - Fix
enqueueOrReplace
andscheduleOrReplace
now update server tags (issue #164) #267
Breaking changes
- Drop support for
StorageProviders
still in Beta (e.g.,ElasticSearchStorageProvider
,JedisStorageProvider
, etc.) @Recurring
has been moved to coreorg.jobrunr.jobs.annotation.Recurring
JobScheduler.delete(String id)
has been renamed toJobScheduler.deleteRecurringJob(String id)
- The interface
StorageProvider
has been updated Page
andPageRequest
have been updated- Overall
BatchJob
s logic has been rewritten, make sureMigrateFromV6toV7Task
is run
OSS version:
New features
- JobRunr now has builtin support for Virtual Threads! They are enabled by default for JDK 21 and higher. PR #906
- InMemoryStorageProvider now allows for a pollInterval as small as 200ms (useful for testing purposes). Issue #619, PR #909
Enhancements
- Use Time-based UUID’s as ID’s for jobs instead of UUID.randomUUID() for lower disk usage in databases, issue #891, PR #890
- Significantly decrease JSON size, PR #892
- Reduce load on database by reducing the amount of
ConcurrentModificationExceptions
. #904 - BackgroundJobServer Master Tasks are now spread over multiple threads for smooth processing. #954
- JobRunr let’s you know when your JobFilters are too slow via a warning. #961
- [Quarkus] Separate build time and runtime configuration. PR #845
- [Quarkus] Update Quarkus related settings to ConfigMapping. PR #876
- [Elasticsearch] Update to new Java API. Issue #499, PR #850
- Wait for database migrations to finish before starting background job processing
Fixed bugs
- Make database migrations work on WildFly, PR #883
- Fix Bug
ApplyStateFilter
is called before save resulting in multiple calls toonStateApplied
., issue #902, PR #903 - [Quarkus] As a workaround to issue #887, JobRunr will now first look Jackson capabilities and use it when available. PR #913.
- Fix Bug
JobServerFilter.onProcessingFailed
is not called when a job orphans (e.g. if background job server dies). Issue #920, PR #921 - Fix Bug
IllegalStateException
: Can not find variable 3 in stack. Issue #942, PRs #941, #945 - [Micronaut] Fix Bug Integration with Micronaut fails when multiple servers are started. Issue #847, PR #852
- Fix Bug
CronExpression.validateSchedule()
does not correctly check for interval size. Issue #858, PR #859
Misc
- Updated dependencies, PRs #851, #886, #889, #917, #943, #956
- Refactoring, PRs #893, #894, #895, #934, #937, #938
- Improved logging / exceptions: PRs #860, #925
Breaking changes
@Recurring
has been moved to coreorg.jobrunr.jobs.annotation.Recurring
JobScheduler.delete(String id)
has been renamed toJobScheduler.deleteRecurringJob(String id)
- The
StorageProvider
has been updated Page
andPageRequest
have been updated
Contributors
We thank the following contributors for their help with JobRunr v7!
Try it out now and let us know your feedback! Your input is very important, so we can provide you smooth v7.0.0 JobRunr!
Best,
Friends of developers
The JobRunr Team