Учитывая, что на веб-приложении AWS, работающем на AWAS Elastic Beanstalk (например, в идентичных экземплярах за балансировщиком нагрузки), как я могу выполнять запланированную фоновое действие, которое выполняется только для одного экземпляра?Задачи планирования в кластере идентичных одноранговых узлов
У меня есть cron-подобный механизм планирования в веб-приложении и может использовать, например. AWS Simple Queue Service для очереди задач (и убедитесь, что каждая задача выполняется только один раз). Но как я могу гарантировать, что только один экземпляр создает задачи (чтобы избежать дубликатов)?
Очевидно, что у меня может быть выделенный экземпляр, который отвечает за создание задач, но я ищу более динамический механизм, который позволяет одному из обычных экземпляров автоматически выполнять эту роль. Есть идеи?
Итак, есть ли подключаемый модуль для кварца, который позволяет обнаруживать запущенные экземпляры в группе безопасности EC2 и координировать выполнение задания? Или как вы предотвращаете дублирование выполнения задания? – ejain
Плагин не нужен, просто конфигурация. Например, указание всех узлов в вашей группе безопасности EC2 в одной и той же базе данных для хранения их данных задания Quartz автоматически сделает их скоординированными. Агенты Quartz на каждом узле проверяют детали работы, которые централизованы в базе данных. – Jason
Спасибо, нашел это: http://quartz-scheduler.org/documentation/quartz-2.x/tutorials/tutorial-lesson-09. Похоже, вам нужна реляционная база данных или Terracotta. – ejain