我在需要启动调度程序的地方有一个q要求,但是现有触发器不应运行。我有spring boot应用程序,我想实现一个启动应用程序但不应该将现有触发器运行到系统中的情况。
它可以是任何标志或参数库。有什么办法可以做到这一点?我一直在网上检查与此相关的内容,但找不到与此相关的任何内容。
最佳答案
您可能可以做的是创建调度程序实例,但不要将autostart设置为true。然后将启动应用程序,但不执行任何触发器。
代码片段在kotlin上,但是在Java上应该类似
@Bean
open fun quartzScheduler(springBeanJobFactory: SpringBeanJobFactory): SchedulerFactoryBean {
val quartzSchedulerFactory = SchedulerFactoryBean()
quartzSchedulerFactory.setJobFactory(springBeanJobFactory)
quartzSchedulerFactory.setConfigLocation(ClassPathResource("quartz.properties"))
quartzSchedulerFactory.setOverwriteExistingJobs(true)
quartzSchedulerFactory.isAutoStartup = false
return quartzSchedulerFactory
}
然后,您可以创建一些简单的控制器来启动调度程序
schedulerFactory.scheduler.start()