我有一个Spring Boot应用程序,它具有一个调度程序,该调度程序每天凌晨2点将数据插入到远程数据库中。
@Scheduled(cron = "0 0 2 * * ?")
public void reportDataToDB() {
// code omitted
}
问题是,该应用程序在多台计算机上运行,因此数据库将收到重复的数据插入。
解决此问题的惯用方法是什么?
答案 0 :(得分:0)
我们通过使用中央调度程序解决了此类问题。在我们的例子中,我们使用Rundeck,然后通过在服务上调用URL(通过负载平衡器),然后执行任务(在本例中为数据清理)。这样,您可以确保逻辑仅在服务的一个实例上执行。