我已经在我的spring启动应用程序中创建了一个cron调度触发器,如下所示,它被完全解雇了。问题是,当我在下面的代码中更改cron schedule表达式并重新启动spring引导应用程序时,cron schedule触发器没有得到更新,仍然触发旧的cron schedule表达式值。
在检查数据库表时,我看到表qrtz\u cron\u triggers中的记录没有得到更新。
qrtz\u cron\u triggers表中的记录是
“quartzscheduler”“qrtz\u nereportprocessor\u job\u trigger”“默认”“0 30 22?**”“亚洲/加尔各答”
如何确保在重新启动spring引导应用程序时,cron schedule表达式值得到更新?我的代码在下面。
@Bean(name = "nRJobDetail")
public JobDetail nRJobDetail() {
return newJob().ofType(NEReportJob.class).storeDurably().withIdentity(JobKey.jobKey("Qrtz_NEReportProcessor_Job_Detail")).withDescription("Invoke NEReportProcessor Job service...").build();
}
@Bean
public Trigger nRTrigger(@Qualifier("nRJobDetail") JobDetail job) {
return newTrigger().forJob(job).withIdentity(TriggerKey.triggerKey("Qrtz_NEReportProcessor_Job_Trigger")).withDescription("NEReportProcessor trigger")
.withSchedule(CronScheduleBuilder.cronSchedule("0 00 23 ? * *")
)
.build();
}
1条答案
按热度按时间m2xkgtsf1#
我想你忘了配置
spring.quartz.overwrite-existing-jobs = true
配置的作业是否应覆盖现有作业定义。