Кластерные задания Quartz, поддерживаемые базой данных — автоматически ли кластеризуются динамически создаваемые триггеры?

До сих пор мы использовали Quartz для настройки планировщика, поддерживаемого базой данных, и любых заданий/триггеров в конфигурации spring, которая затем загружается при запуске приложения в кластере. Затем каждый сервер в кластере совместно использует триггеры, так что каждый раз триггеры запускаются только одним из серверов.

Теперь я хочу динамически создавать новые триггеры для существующих bean-компонентов jobDetail (которые управляются Spring) на любом из серверов, но мне нужно, чтобы все серверы в кластере знали об этом новом триггере. Мне также нужно, чтобы они знали об удалении триггера одним из серверов.

Используя текущую настройку, это просто будет работать? Кварц периодически проверяет базу данных на наличие новых триггеров?

Если нет, то какие другие подходы могут решить эту проблему?

Я новичок в Quartz, поэтому прошу прощения, если пропустил что-то фундаментальное.

Спасибо за вашу помощь.


person James Camfield    schedule 23.03.2010    source источник


Ответы (1)


Кварц всегда выполняет проверку по базе данных при поиске триггеров, которые необходимо выполнить. поэтому, если один сервер удалит или добавит триггер, другие серверы увидят его автоматически.

person Salandur    schedule 23.03.2010
comment
Ваше здоровье. Я думал, что это будет сложно протестировать/доказать, но в конце концов мне удалось сделать это довольно легко (всего два экземпляра weblogic, работающих с одной и той же схемой БД), и это сработало. Настройка триггера на одном сервере может быть незапланирована/запущена другим сервером. - person James Camfield; 23.03.2010