Запланированная работа в многоузловой среде

1

Я работаю над запланированным заданием, которое будет выполняться с определенным интервалом (например, один раз в день в 1 час дня), запланированным через Cron. Я работаю с Java и Spring.

Написание запланированного задания достаточно просто - это: захват списка людей определит критерии от db, так как каждый человек выполняет некоторые вычисления и запускает сообщение.

Я работаю над одноузловой средой локально и при тестировании, однако, когда мы перейдем к производству, это будет многоузловая среда (с балансировкой нагрузки и т.д.). Моя забота заключается в том, как среда нескольких узлов влияет на запланированную работу?

Мое предположение, я мог (или, скорее всего, был бы) в конечном итоге с запуском дублирования сообщения.

  • Машина 1: захватить список людей, сделать расчет
  • Машина 2: захватить список людей, сделать расчет
  • Машина 1: сообщение триггера
  • Машина 2: сообщение триггера

Верно ли мое предположение?

Каким будет рекомендуемое решение, чтобы избежать вышеупомянутой проблемы? Нужно ли мне создавать решение распределенной системы с ведущим/ведомым для управления многоузловой средой?

Теги:
spring
cron
distributed

1 ответ

1
Лучший ответ

Если у вас есть что-то вроде трех экземпляров Tomcat, каждая загрузка, сбалансированная за Apache, например, и на каждом вашем приложении запускается, тогда у вас будет три разных триггера, и ваша работа будет выполняться три раза. Я не думаю, что у вас будет многоузловая среда с распределенным выполнением задания, если не будет установлен какой-либо механизм распределения частей задания. Если вы еще не просмотрели этот проект, загляните в Spring XD. Он обрабатывает Spring Batch Jobs и может работать в распределенном режиме.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню