从多台计算机仅向数据库报告一次

时间:2018-10-08 07:00:06

标签: java spring-boot

我有一个Spring Boot应用程序,它具有一个调度程序,该调度程序每天凌晨2点将数据插入到远程数据库中。

@Scheduled(cron = "0 0 2 * * ?")
public void reportDataToDB() {
    // code omitted
}

问题是,该应用程序在多台计算机上运行,​​因此数据库将收到重复的数据插入。

解决此问题的惯用方法是什么?

1 个答案:

答案 0 :(得分:0)

我们通过使用中央调度程序解决了此类问题。在我们的例子中,我们使用Rundeck,然后通过在服务上调用URL(通过负载平衡器),然后执行任务(在本例中为数据清理)。这样,您可以确保逻辑仅在服务的一个实例上执行。