Существующий алгоритм для основного процессора
Итак, у меня есть приложение, которое работает одновременно на нескольких серверах. Все они используют одну и ту же базу данных (Mongo) и могут также общаться через JMS.
У меня есть обработка, которую я должен сделать на одной из коллекций БД, которую я хочу выполнить только на одном сервере (Первичный сервер). Однако, если этот сервер выходит из строя (это весьма вероятная виртуальная машина), мне нужен один (и только один) из других серверов, чтобы начать обработку.
Эта обработка не будет непрерывной, но будет начинаться каждую минуту или около того.
Мой вопрос: существует ли существующий алгоритм или программный шаблон, который решает эту проблему проектирования? Существует ли какой-либо существующий проект с открытым исходным кодом Java, который реализует решение?
Чтобы быть ясным, я не ищу предложений о том, как создать свой собственный домашний алгоритм (могу сделать это сам), но ищу существующий программный шаблон или решение для этого.
Это почти похоже на ситуацию типа "столовой философии", когда только один может "есть" одновременно.