Задания Spring quartz / cron в распределенной среде

#spring #quartz-scheduler

#spring #quartz-планировщик

Вопрос:

У меня есть парк из примерно 5 серверов. Я хочу запустить идентичное приложение Spring / Tomcat на каждой машине.

Мне также нужно, чтобы определенная задача выполнялась каждые десять минут. Оно должно выполняться только на одной из машин. Мне нужен какой-то протокол выбора или другое подобное решение.

Есть ли у Spring или Quartz какое-либо встроенное распределенное cron-решение, или мне нужно что-то реализовать самому?

Ответ №1:

У Hazelcast есть платформа distributed executor, которую вы можете использовать для запуска заданий с использованием платформы JDK Executor (которая, кстати, возможно, более тестируема, чем horrid Quartz … возможно). У него есть несколько режимов работы, включая «случайный» выбор одного узла для выполнения вашей работы.

Смотрите документацию для получения более подробной информации