据我尝试,我必须手动更改数据库中的 CRON_TRIGGERS 表。肮脏...
有什么办法可以制作更多这样的东西吗?:
- 有 2 个应用程序正在运行,它们在 .properties 文件中的计划都定义为“每分钟”,因此可以正常工作
- 我停止一个实例并重新配置(更改 .properties 文件),因此计划为“每小时”
- 我启动实例。现在我希望该实例检查此类作业是否已在数据库中定义并更新那里的计划。现在使用站点 http://www.objectpartners.com/2013/07/09/configuring-quartz-2-with-spring-in-clustered-mode/ 中的配置不会发生这种情况
或者典型的解决方案是什么?
最佳答案
- 所以我猜当你说 .properties 文件时,你实际上指的是 spring bean XML 文件。
- 使用不同的计划静态配置相同的作业没有任何意义。如果出于某种原因,一个实例重新启动,它将自动应用自己的计划。如果静态配置,您的作业触发器在所有实例上都应该相同
- 如果您正确设置
<property name="overwriteExistingJobs" value="true"/>
在你的SchedulerFactoryBean
它应该会自动更新作业的时间表。 - 您绝对不应该手动修改数据库。始终通过 API 更新调度程序。
关于java - 如何更改集群 quartz 作业的时间表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24484742/