Я запускаю веб-приложение на Java несколько раз за балансировщиком нагрузки.
Когда пользователь запускает определенный сервлет, ScheduledExecutorService
планирует задачу на некоторое время в будущем.Очевидно, что эта задача устанавливается только для экземпляра, в котором находился пользователь.
Для обеспечения избыточности, каков наилучший способ обеспечить добавление задачи и к другим экземплярам?То есть, если что-то должно произойти с экземпляром, на который была намечена задача, я хочу убедиться, что другие экземпляры имеют запланированное задание, чтобы они могли ее выполнить.
(я не беспокоюсь о задачебудучи выполненным несколько раз, я могу просто пометить его как выполненный в моей базе данных, которая является общей для всех экземпляров).
Одно из решений состоит в том, чтобы просто запланировать задачу на каждый час на обоих серверах, которые проверяют (черезд.б.) если выполнить указанное задание.Хотя это выполнимо, оно требует запросов к базе данных каждый час или минуту.Так что, если есть способ сделать это, запланировав задачу один раз, это было бы лучше.