From 8a292db0a85d4050c1ea33fda6795db9aa4d7dff Mon Sep 17 00:00:00 2001 From: Eoin Gallinagh Date: Thu, 10 Mar 2022 18:42:44 +0000 Subject: [PATCH] Add misfireThreshold default to QuartzRuntimeConfig.java --- .../io/quarkus/quartz/runtime/QuartzRuntimeConfig.java | 8 ++++++++ .../java/io/quarkus/quartz/runtime/QuartzScheduler.java | 3 ++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/extensions/quartz/runtime/src/main/java/io/quarkus/quartz/runtime/QuartzRuntimeConfig.java b/extensions/quartz/runtime/src/main/java/io/quarkus/quartz/runtime/QuartzRuntimeConfig.java index dfd8535f8a76c..76d76d096eae0 100644 --- a/extensions/quartz/runtime/src/main/java/io/quarkus/quartz/runtime/QuartzRuntimeConfig.java +++ b/extensions/quartz/runtime/src/main/java/io/quarkus/quartz/runtime/QuartzRuntimeConfig.java @@ -1,5 +1,7 @@ package io.quarkus.quartz.runtime; +import java.time.Duration; + import io.quarkus.runtime.annotations.ConfigItem; import io.quarkus.runtime.annotations.ConfigPhase; import io.quarkus.runtime.annotations.ConfigRoot; @@ -25,6 +27,12 @@ public class QuartzRuntimeConfig { @ConfigItem(defaultValue = "5") public int threadPriority; + /** + * Defines how late the schedulers should be to be considered misfired. + */ + @ConfigItem(defaultValue = "60") + public Duration misfireThreshold; + /** * Scheduler can be started in different modes: normal, forced or halted. * By default, the scheduler is not started unless a {@link io.quarkus.scheduler.Scheduled} business method diff --git a/extensions/quartz/runtime/src/main/java/io/quarkus/quartz/runtime/QuartzScheduler.java b/extensions/quartz/runtime/src/main/java/io/quarkus/quartz/runtime/QuartzScheduler.java index cf6a9b150012e..af33481f128ce 100644 --- a/extensions/quartz/runtime/src/main/java/io/quarkus/quartz/runtime/QuartzScheduler.java +++ b/extensions/quartz/runtime/src/main/java/io/quarkus/quartz/runtime/QuartzScheduler.java @@ -437,7 +437,8 @@ private Properties getSchedulerConfigurationProperties(QuartzSupport quartzSuppo String dataSource = buildTimeConfig.dataSourceName.orElse("QUARKUS_QUARTZ_DEFAULT_DATASOURCE"); QuarkusQuartzConnectionPoolProvider.setDataSourceName(dataSource); props.put(StdSchedulerFactory.PROP_JOB_STORE_PREFIX + ".useProperties", "true"); - props.put(StdSchedulerFactory.PROP_JOB_STORE_PREFIX + ".misfireThreshold", "60000"); + props.put(StdSchedulerFactory.PROP_JOB_STORE_PREFIX + ".misfireThreshold", + "" + quartzSupport.getRuntimeConfig().misfireThreshold.toMillis()); props.put(StdSchedulerFactory.PROP_JOB_STORE_PREFIX + ".tablePrefix", buildTimeConfig.tablePrefix); props.put(StdSchedulerFactory.PROP_JOB_STORE_PREFIX + ".dataSource", dataSource); props.put(StdSchedulerFactory.PROP_JOB_STORE_PREFIX + ".driverDelegateClass",