Параллелизм планировщика весенней загрузки

#amazon-web-services #spring-boot #azure #microservices #cloud-foundry

Вопрос:

Я написал планировщик в приложении java spring boot, которое запускается каждые 300 мс, и я хочу развернуть этот jar в 2 центра обработки данных PCF.

Когда я развертываю планировщик, запускайте его дважды. Как я могу ограничить его запуск 1nce за раз либо по DC1, либо по DC2.

Я хочу, чтобы он некоторое время работал по DC1 или по DC2, причина этого в том, что если DC1 отключен, приложение не должно отключаться

Может ли кто-нибудь из 1 плз предложить здесь?

Комментарии:

1. Звучит как задание для очереди сообщений. Пусть оба экземпляра используют сообщения из одной и той же очереди, чтобы запустить вашу обработку(RabbitMQ прекрасно справляется с обменом темами). Превратите свой планировщик в другую службу и поставьте ее в очередь сообщений, когда вы хотите, чтобы ваше приложение выполнялось. Только один экземпляр вашего приложения может использовать это сообщение, и поэтому больше никакого дублирования. Если одно из приложений выйдет из строя, другое получит сообщение (при условии, что они оба не выйдут из строя!).

2. @jeremyt нет, мы не используем никаких очередей.. Мы считываем данные из oracle, обрабатываем их и отправляем sms пользователям. здесь не использовалась очередь

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

4. @jeremyt есть идеи, сможет ли shedlock решить эту проблему?

5. Звучит так же хорошо, как и любой другой подход. Я нахожу, что эти ребята делают отличные уроки: baeldung.com/shedlock-spring