-
Notifications
You must be signed in to change notification settings - Fork 2.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Consolidate scheduler extension - part 1 #5481
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Otherwise seems fine to me.
extensions/scheduler/runtime/src/main/java/io/quarkus/scheduler/runtime/SchedulerConfig.java
Outdated
Show resolved
Hide resolved
extensions/scheduler/runtime/src/main/java/io/quarkus/scheduler/runtime/SimpleScheduler.java
Show resolved
Hide resolved
The test failures seem related |
@geoand OK, I'll investigate the failure. |
Cool |
b279c1f
to
b1feebb
Compare
Thanks @mkouba for this PR. I'll have a look at it tomorrow and revive my work on quartz clustered jobs. |
Ok, we're green now! ;-) Let's wait for @machi1990 's review though... |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added minor comments, otherwise LGTM. Great progress :-)
I have already started reviving #3783 based on this work.
extensions/quartz/deployment/src/main/java/io/quarkus/quartz/deployment/QuartzProcessor.java
Show resolved
Hide resolved
extensions/quartz/deployment/src/main/java/io/quarkus/quartz/deployment/QuartzProcessor.java
Outdated
Show resolved
Hide resolved
extensions/quartz/runtime/src/main/java/io/quarkus/quartz/runtime/QuartzRuntimeConfig.java
Outdated
Show resolved
Hide resolved
- introduce lightweight scheduler implementation in quarkus-scheduler - introduce quarkus-quartz based on quarkus-scheduler build steps and API - remove Scheduler#startTimer() method - add proper intergration test
- otherwise the scheduled bean must be proxyable
b1feebb
to
92f71a4
Compare
You rock @mkouba ;-) |
quarkus-scheduler
contains the API (io.quarkus.scheduler.Scheduled
and friends), shared logic to collect/validate scheduled methods and a simple scheduler impl (we usecom.cronutils:cron-utils
to parse/validate/migrate CRON expressions, aScheduledExecutorService
with one "scheduler" thread that delegates the execution of scheduled methods to theExecutorService
obtained fromExecutorBuildItem
; ifquarkus-scheduler
is present this impl is disabled)quarkus-quartz
depends onquarkus-scheduler
and reuses most of the build steps and API; however, it's using Quartz as the underlying scheduler impl and provides some quartz-specific configurationquarkus.scheduler.cron-type
property; the default value isquartz
to retain backward compatibility; other options areunix
andcron4j
Scheduler#startTimer()
method was removed - it was a mistakequarkus-integration-test-main
but there were no assertionsTODO (next PRs):
quarkus.scheduler.cron-syntax
property - PR Consolidate scheduler extension - part 1 #5481 opened