Интеграция tomcat и планировщика Quartz при запуске

Я использую tomcat версии 6.0. Мое требование состоит в том, что при запуске tomcat я хотел бы запустить QuartzScheduler, который будет планировать некоторые задания через регулярные промежутки времени. Я пытаюсь выяснить, как лучше всего это сделать. Вот варианты, которые я мог придумать -

  1. Я могу сделать это с помощью сервлета с дескриптором «load-on-startup» в файле web.xml, чтобы запустить планировщик и запланировать задания внутри сервлета.
  2. Можно сделать с помощью ContextListener (это звучит лучше, чем 1). Это может быть чистый подход для запуска планировщика внутри метода contextInitialized и закрытия планировщика внутри метода contextDestroyed.
  3. Использование дескриптора MBean. Я разрабатываю MBean, который запускается при запуске сервера с файлом mbeans-descriptor.xml.

Мне кажется, что второй подход лучше. Третий может быть не очень хорошей идеей, так как это явно не MBean, который будет отслеживаться jconsole или около того. Моя цель - запустить планировщик и остановить его, когда tomcat остановится. Есть ли лучший и более чистый способ сделать это?


person Shamik    schedule 04.06.2010    source источник
comment
Вот пример того, как это сделать с помощью Spring: bxm.at/blogs/java /2007/08/29/quartz_spring   -  person chickeninabiscuit    schedule 04.06.2010
comment
Блог, на который ссылается @AshKim, перемещен: blog.ehrnhoefer.com /2007-08-29-кварц-2-пружина   -  person Fodder    schedule 07.04.2016


Ответы (1)


Я бы также рекомендовал второй подход, используя сервлет, который существует только для запуска какой-либо службы, в то время как обычное использование кажется мне хакерским.

Похоже, что кварц уже предоставляет ServletContextListener именно для этой цели:

http://quartz-scheduler.org/documentation/quartz-2.x/cookbook/ServletInitScheduler

а также

http://www.quartz-scheduler.org/api/2.0.0/

для деталей.

person Greg Case    schedule 04.06.2010
comment
Opps никогда не знал, что Quartz уже предоставляет ContextListenner. Спасибо большое. - person Shamik; 04.06.2010