Когда Spring-boot приложение развертывает несколько узлов, как справиться с работой cron? - PullRequest
0 голосов
/ 05 июля 2018

Когда я использую задачу Spring, выполняю простую задачу синхронизации! Но когда я развертываю многоузловую систему, то как убедиться, что задание cron выполняется только один раз. Может быть, вы говорите, что:
1. Используйте флаг распределенной блокировки перед запуском задания.
2. Интегрированная функция кварцевого кластера.
Но я надеюсь, что весенняя задача @EnableScheduling может добавить аргумент флага, чтобы мы могли установить флаг при запуске приложения.

Ответы [ 2 ]

0 голосов
/ 05 июля 2018

Мы успешно используем https://github.com/lukas-krecan/ShedLock, в частности, провайдера зоопарка.

0 голосов
/ 05 июля 2018

Spring boot, в двух словах, не допускает какой-либо координации между несколькими экземплярами того же микросервиса.

Вся работа по такой координации выполняется третьими лицами, с которыми интегрируется пружинная загрузка.

Одним из примеров этого является аннотация @Scheduled.

Еще одна поддержка миграции БД через flyway .

Когда запускается много узлов и выполняется миграция, flyway отвечает за самостоятельную блокировку таблицы миграции, весенняя загрузка не имеет к этому никакого отношения.

Итак, суть в том, что такой поддержки нет, и все опции, которые вы подняли, могут работать.

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