Я работаю над запланированным заданием, которое будет выполняться с определенным интервалом (например, один раз в день в 1 час дня), запланированным через Cron. Я работаю с Java и Spring.
Написание запланированного задания достаточно просто - это: захват списка людей определит критерии от db, так как каждый человек выполняет некоторые вычисления и запускает сообщение.
Я работаю над одноузловой средой локально и при тестировании, однако, когда мы перейдем к производству, это будет многоузловая среда (с балансировкой нагрузки и т.д.). Моя забота заключается в том, как среда нескольких узлов влияет на запланированную работу?
Мое предположение, я мог (или, скорее всего, был бы) в конечном итоге с запуском дублирования сообщения.
Верно ли мое предположение?
Каким будет рекомендуемое решение, чтобы избежать вышеупомянутой проблемы? Нужно ли мне создавать решение распределенной системы с ведущим/ведомым для управления многоузловой средой?
Если у вас есть что-то вроде трех экземпляров Tomcat, каждая загрузка, сбалансированная за Apache, например, и на каждом вашем приложении запускается, тогда у вас будет три разных триггера, и ваша работа будет выполняться три раза. Я не думаю, что у вас будет многоузловая среда с распределенным выполнением задания, если не будет установлен какой-либо механизм распределения частей задания. Если вы еще не просмотрели этот проект, загляните в Spring XD. Он обрабатывает Spring Batch Jobs и может работать в распределенном режиме.