我有一张桌子,上面有一些配置。大约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
。我认为。不知道该怎么做。有什么建议吗?
还有其他选择,哪个更好?