spring Boot - disable quartz scheduler

eh57zj3b  于 2023-04-06  发布在  Spring
关注(0)|答案(2)|浏览(198)

我需要能够设置quartz以根据配置文件运行。我正在使用集成测试来确保每个配置文件正在启动调度程序(或没有),但我正在检查一个没有启用它的配置文件,并且此检查失败:

assertFalse(scheduler.isStarted());

这是我在application.yaml中使用的配置文件:

spring:
  quartz:
    enabled: false

还尝试:

spring:
  quartz:
    properties:
      enabled: false

任何想法如何让石英不开始在所有?
作为一种解决方法,是否可以在配置文件上设置一个虚拟调度程序,以便完全跳过真实的的quartz?
PS我已经注意到这一点,但我想保持它在应用程序。yaml如果可能的话:How to disable Quartz scheduler for dev and stg environment

35g0bw71

35g0bw711#

这个方法奏效了:

spring:
  quartz:
    auto-startup: false
e5nszbig

e5nszbig2#

在我的例子中,禁用spring.quartz.auto-startup是不够的。Quartz仍然很高兴地启动并在日志中报告:

org.quartz.impl.StdSchedulerFactory      : Using default implementation for ThreadExecutor
org.quartz.core.SchedulerSignalerImpl    : Initialized Scheduler Signaller of type: class org.quartz.core.SchedulerSignalerImpl
org.quartz.core.QuartzScheduler          : Quartz Scheduler v.2.3.2 created.
(...)
org.quartz.core.QuartzScheduler          : JobFactory set to: org.springframework.scheduling.quartz.SpringBeanJobFactory@4560eb15

我不得不补充一句:

@EnableAutoConfiguration(exclude = { QuartzAutoConfiguration.class })

@SpringBootApplication(...)

......摆脱它。

**更新:**版本为Sping Boot v2.7.7、Spring v5.3.24。

相关问题