java - 仅从多台机器向数据库报告一次

标签 java spring-boot

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

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

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

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

最佳答案

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

关于java - 仅从多台机器向数据库报告一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52696966/

相关文章:

java - 如何在viewpager中的fragment中保存recyclerview的状态?

java - 找不到局部变量 'ac'

java - 在控制台中从 Maven 运行编译后的 jar 时,出现 java.lang.NoClassDefFoundError

java - 没有@ EnableWebMvc,NoHandlerFoundException的自定义异常处理程序将无法工作

logging - 无法关闭 Wiremock 的调试日志记录

java - JPA 的 SQL 结构-行还是列?

java - Robot.mouseMove 未正确移动到指定位置

java - 将 Spring MVC Web 应用程序转换为控制台应用程序

java - 匹配每个单词的第一个字符

java - @ConfigurationProperties 注解的警告