Отчет в базу данных только один раз с нескольких машин - PullRequest
0 голосов
/ 08 октября 2018

У меня есть приложение Spring Boot, в котором есть планировщик, который вставляет данные в удаленную базу данных в 2 часа ночи каждый день.

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

Проблема в том, что приложение работает на нескольких компьютерах, поэтому база данных будетполучить несколько повторяющихся вставок данных.

Какой идиоматический способ решить эту проблему?

1 Ответ

0 голосов
/ 08 октября 2018

Мы решили эту проблему с помощью центрального планировщика.В нашем случае мы используем Rundeck, который затем вызывает URL на нашем сервисе (через loadbalancer), который затем выполняет задачу (в нашем случае очистка данных).Таким образом, вы можете быть уверены, что логика выполняется только для одного экземпляра службы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...