2016-02-11 2 views
0

У нас есть веб-приложение, которое использует QUARTZ для планирования и выполнения заданий. Настройка производства следующая: два сервера за балансировщиком нагрузки, QUARTZ настроен на кластеризацию, и оба сервера могут планировать и выполнять задания. Теперь нам нужно добавить третий сервер, который будет посвящен выполнению заданий. Мы назовем это «Сервер рабочих мест». Два фронтальных сервера не будут выполнять никаких заданий. Но мы нуждаемся в них, чтобы иметь возможность планировать задания (из пользовательского интерфейса приложения). Какова правильная конфигурация QUARTZ на каждом сервере для включения предыдущей настройки? Нужно ли делать какой-либо пользовательский код для достижения этого?Как настроить кварц для выполнения заданий на определенном сервере

ответ

0

Не запускайте кварцевые планировщики на AS1 (Application Sever 1) и AS2 и не запускайте их только на JS (сервер заданий). Затем используйте один из Quartz remote API (JMX или RMI) для планирования и управления вашими заданиями удаленно на JS.

В качестве альтернативы вы можете (автоматически) запускать планировщики Quartz на AS1 и AS2, но приостанавливать их сразу после их запуска, например. от метода обратного вызова schedulerStarted.

Чтобы быть на безопасной стороне, что AS1 и AS2 не будет выполнять никаких заданий между их запуска и остановились, вы должны также установить размер рабочего потока пула их Quartz планировщика 0.