An extremely easy way to perform background processing in Java. Backed by persistent storage. Open and free for commercial use.
OTHER License
Bot releases are visible (Hide)
JobRunr Quarkus Extension is now visible on the Quarkus Extension Catalog, thanks @melloware for taking the initiative!
ServerZookeeper
(thanks @SkourtsidisGiorgos). PR #1078
Full Changelog: https://github.com/jobrunr/jobrunr/compare/v7.2.2...v7.2.3
Published by auloin 4 months ago
This JobRunr release prevents an NPE if a job succeeds right when updateProcessing
was called.
Full Changelog: https://github.com/jobrunr/jobrunr/compare/v7.2.1...v7.2.2
Published by rdehuyss 4 months ago
This JobRunr release fixes a ConcurrentModificationException
that can happen due to concurrent updates to a Job
and completes the transition from Kotlin 1.7 to Kotlin 2.0 by correctly naming the artifact. JobRunr also validates JobRequest
s provided to the JobBuilder
or RecurringJobBuilder
and throws an exception if the JobRequest
is invalid.
JobBuilder
or the RecurringJobBuilder
. PR #1057
jobrunr-kotlin-2.0-support
by @tan9. PR #1055
Full Changelog: https://github.com/jobrunr/jobrunr/compare/v7.2.0...v7.2.1
Published by auloin 5 months ago
We're happy to announce the release of JobRunr 7.2.0, which includes support for Spring Boot 3.3, Kotlin 2.0, and important bug fixes!
Note: support for Kotlin 1.7 is dropped.
spring-boot-starter
dependency with a provided
scope. PR #1050
JobScheduler
or JobRequestScheduler
will be retried if a ConcurrentJobModificationException
is thrown. PR #1048
BackgroundJobServer
. PR #1049
Full Changelog: https://github.com/jobrunr/jobrunr/compare/v7.1.2...v7.2.0
Published by auloin 5 months ago
New minor release with an important bug fix!
Full Changelog: https://github.com/jobrunr/jobrunr/compare/v7.1.1...v7.1.2
Published by rdehuyss 5 months ago
Again a new release with some improvements!
DeleteDeletedJobsPermanentlyTask
not using correct configuration PR https://github.com/jobrunr/jobrunr/pull/1030 (fixes https://github.com/jobrunr/jobrunr/issues/1029)Full Changelog: https://github.com/jobrunr/jobrunr/compare/v7.1.0...v7.1.1
Published by rdehuyss 6 months ago
Right after the release from v7.0.0, we continue with v7.1.0 where JobRunr now supports Virtual Threads in GraalVM native mode.
Full Changelog: https://github.com/jobrunr/jobrunr/compare/v7.0.0...v7.1.0
Published by rdehuyss 6 months ago
We are excited to announce the release of JobRunr v7.0.0 and JobRunr Pro v7.0.0. This major release is now available via Maven Central and directly for our Pro subscribers through the customer portal. Building on our promise to deliver robust job scheduling solutions, v7.0.0 brings a suite of powerful new features, substantial performance enhancements, and critical dashboard improvements. Letβs delve into what makes this release a game-changer for developers and enterprises alike for both JobRunr Pro and JobRunr OSS!
π We'd also like to thank all of the developers and companies who have beta tested JobRunr v7 beta's and release candidates.
ConcurrentJobRateLimiter
and the SlidingTimeWindowRateLimiter
. PR #202
JobIdentifier
. PR #285 (fixes #236)BackgroundJobServer
shutdown period configurable. PR #297 (fixes #288)DoNotRetryPolicy
for individual jobs and exceptions. PR #303
InMemoryStorageProvider
now allows for a pollInterval as small as 200ms (useful for testing purposes). PR #909 (fixes #619)FixedSizeWorkerPoolDynamicQueuePolicy
. PR #237
JobFilter
. PR #251 (fixes #239)deleteAt
hint. PR #257
JobServerFilter
to get notified on job progress. PR #282
select for update skip locked
if the database supports it. PR #904
SCHEDULED
jobs at the same pollInterval
. PR #273
StorageProvider
and cleanup deprecated methods. PR #893
MigrateFromV5toV6Task
related RecurringJobs
migration. PR #238
BackgroundJobServer
. PR #272
enqueueOrReplace
and scheduleOrReplace
now also update server tags PR #267 (fixes #164)ApplyStateFilter
is called before save resulting in multiple calls to onStateApplied
. PR #903 (fixes #902)JobServerFilter.onProcessingFailed
is not called when a job orphans (e.g. if background job server dies). PR #921 (fixes #920)IllegalStateException
: Can not find variable 3 in stack. PR #941, PR #945 (fixes #942)CronExpression.validateSchedule()
does not correctly check for interval size. PR #859 (fixes #858)@Recurring
has been moved to core org.jobrunr.jobs.annotations.Recurring
and uses enums instead of booleans. The attributes paused
and scheduleJobsSkippedDuringDowntime
now use an enum instead of a boolean. This allows us to keep the paused state of a Recurring job even if you redeploy (default) whereas in the past, on redeploy, the Job would be started automatically again. If paused
is put to false in the @Recurring
, the Recurring job will start on redeploy even if it was paused before via the dashboardJobScheduler.delete(String id)
has been renamed to JobScheduler.deleteRecurringJob(String id)
StorageProvider
has been updated and is not backwards compatible as is the Page
and PageRequest
. A new class org.jobrunr.storage.Paging
was added where all utility methods regarding Paging have been collectedRedisStorageProvider
and the ElasticSearchStorageProvider
in JobRunr Pro. JobRunr 7 OSS will be the last to support it.JobContext.getSignature()
has been renamed to JobContext.getJobSignature()
JobDashboardProgressBar.setValue(...)
has been renamed to JobDashboardProgressBar.setProgress(long succeededAmount)
BatchJob
s logic has been rewritten, make sure MigrateFromV6toV7Task
is runselect for update skip locked
if the database supports it PR #904:JobContext
. PR #969 (fixes #286)ApplyStateFilter
is called before save resulting in multiple calls to onStateApplied
. PR #903 (fixes #902)JobServerFilter.onProcessingFailed
is not called when a job orphans (e.g. if background job server dies). PR #921 (fixes #920)IllegalStateException
: Can not find variable 3 in stack. PR #941, PR #945 (fixes #942)CronExpression.validateSchedule()
does not correctly check for interval size. PR #859 (fixes #858)@Recurring
has been moved to core org.jobrunr.jobs.annotations.Recurring
JobScheduler.delete(String id)
has been renamed to JobScheduler.deleteRecurringJob(String id)
StorageProvider
has been updated and is not backwards compatible as is the Page
and PageRequest
. A new class org.jobrunr.storage.Paging
was added where all utility methods regarding Paging have been collectedRedisStorageProvider
and the ElasticSearchStorageProvider
. JobRunr 7 will be the last to support it.JobContext.getSignature()
has been renamed to JobContext.getJobSignature()
JobDashboardProgressBar.setValue(...)
has been renamed to JobDashboardProgressBar.setProgress(long succeededAmount)
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
Published by auloin 7 months ago
π We'd like to thank all of you testing JobRunr v7 so far.
π£ JobRunr v7 will be officially released on the 9th of April. Join the webinar to celebrate this major release with us. It's also the opportunity hear from you! We'll do our best to address any questions, remarks or suggestions you have.
π please be aware that we are still in the process of updating our documentation.
BackgroundJobServer
#969 and #973
JobContext
#969
LettuceConnectionFactory
to get RedisClient
JobContext.getSignature()
has been renamed to JobContext.getJobSignature()
Full Changelog: https://github.com/jobrunr/jobrunr/compare/v7.0.0-RC.0...v7.0.0-RC.1
Published by rdehuyss 7 months ago
π please be aware that we are still in the process of updating our documentation.
ConcurrentModificationExceptions
. #904ApplyStateFilter
is called before save resulting in multiple calls to onStateApplied
., issue #902, PR #903JobServerFilter.onProcessingFailed
is not called when a job orphans (e.g. if background job server dies). Issue #920, PR #921IllegalStateException
: Can not find variable 3 in stack. Issue #942, PRs #941, #945CronExpression.validateSchedule()
does not correctly check for interval size. Issue #858, PR #859@Recurring
has been moved to core org.jobrunr.jobs.annotation.Recurring
JobScheduler.delete(String id)
has been renamed to JobScheduler.deleteRecurringJob(String id)
StorageProvider
has been updatedPage
and PageRequest
have been updatedJobDashboardProgressBar.setValue(...)
has been renamed to JobDashboardProgressBar.setProgress(long succeededAmount)
We thank the following contributors for their help with JobRunr v7!
Published by rdehuyss 10 months ago
None
Published by rdehuyss 11 months ago
Published by rdehuyss about 1 year ago
A big shoutout and thank you π to @tms0 for his help with Quarkus and JobRunr. It's thanks to him that you can run JobRunr in Quarkus using GraalVM Native Mode .
Published by rdehuyss about 1 year ago
None
Published by rdehuyss about 1 year ago
I'm pleased to announce the release of JobRunr v6.3.0 (which is now available via Maven Central) and JobRunr Pro v6.3.0 which is available for customers with a subscription.
Since the 6.2.0 release, we did some performance improvements related to the dashboard resulting in less calls to the JobRunr rest API and we also did stability improvements which should result in less SevereJobRunrExceptions
. This release adds support for Micronaut 4 and Kotlin 1.9.
In JobRunr Pro, we added Observability support, added the option to set a Job
time-out, users can now sort the jobs in the dashboard and we improved the RetryPolicy
which now also allows to specify a custom amount of retries per Exception
.
And last but not least, all dependencies were also updated.
I also want to shoutout to Sergi Almar who improved the spring-boot-starter
and Geir Sagberg who fixed a bug in the dashboard for their contributions. You have my eternal π.
Although the JobRunr Pro Dashboard gives instant insights how your jobs are doing, you may already have an observability platform like Jaeger, HoneyComb or New Relic running inside your organization. JobRunr Pro now out-of-the box integrates with many of these observability platforms so you can keep on top of things. This means you can now see how long your different Job instances take and where a job spends the most time right from your existing observability platform.
A Job
time-out is exactly what you think it is - specify it when creating a Job
and if the Job
is processing longer than the given time-out, JobRunr will automatically interrupt it.
BackgroundJobServers
start.Published by rdehuyss over 1 year ago
None
Published by rdehuyss over 1 year ago
None
Published by rdehuyss over 1 year ago
None
All dependencies have been updated to their latest version.
Published by rdehuyss over 1 year ago
I'm pleased to announce the release of JobRunr v6.2.0 (which is now available via Maven Central) and JobRunr Pro v6.2.0 which is available for customers with a subscription.
This release includes an important bugfix for people running JobRunr on Windows machines that was reported by the community and a Pro customer. Sometimes, no jobs were processed on Windows due to a deadlock when querying CPU information. This has now been solved.
On top of that, we did some profiling and made JobRunr a bit faster. Last but not least, we upgraded our dependencies including Spring Boot 3 and we now also support Quarkus 3.0. Support for Quarkus 2.0 and Kotlin 1.6 has dropped as we want to stay up-to-date with the latest technologies.
For JobRunr Pro customers, we added a very cool and much requested feature: dynamic queues or load-balancing!
This means your application can now support multiple tenants concurrently. Even in a scenario where one tenant, say Tenant-A, generates millions of jobs while others only create a few, these other tenants won't be left waiting until all of Tenant-A's jobs are completed. Instead, JobRunr utilizes a round-robin load-balancing strategy to ensure each tenant receives balanced job processing, facilitating fairness in processing their jobs.
Read all about [dynamic queues]({{< ref "documentation/pro/dynamic-queues.md" >}}) in the JobRunr Pro documentation!