配置更新后,如何使计划任务保持相关性?

时间:2019-11-19 16:43:56

标签: java spring postgresql cron scheduled-tasks

我有一张桌子,上面有一些配置。大约100行。

id name cron
1   stage1  2 * * * * *
2   stage2  1 * * * * *

基本上是对象(另一个表)的名称和检查该对象的频率。

然后我根据此配置安排一些任务

public void scheduleAllCrons() {
    scheduleRepository.findAll().forEach(
        schedule -> taskScheduler.schedule(missingPartitionsTask, new CronTrigger(schedule.getCronDate())));
}

问题是,每周更新几次配置(有时会更改频率,有时会添加新的配置)。更新是随机的。

那么,如何使计划任务保持相关性?

我想我可以安排调度程序)每小时大约scheduleAllCrons打电话来更新它。有可能会在此间隔内更新/添加某些任务,而这些任务可能无法及时运行。而且先前的预定任务将继续进行,因此我可能不得不杀死它们。那是最佳选择吗?

每次配置更新时,也应该可以触发scheduleAllCrons。我认为。不知道该怎么做。有什么建议吗?

还有其他选择,哪个更好?

0 个答案:

没有答案