在启动时集成tomcat和Quartz调度程序

Sha*_*mik 16 java tomcat quartz-scheduler

我使用的是tomcat 6.0版.我的要求是当tomcat启动时,我想启动一个QuartzScheduler会定期安排一些工作的人.我试图找出最好的方法来做到这一点.以下是我能想到的选项 -

  1. 我可以通过文件中带有" load-on-startup"描述符的servlet web.xml来启动调度程序并调度servlet中的作业.
  2. 可以使用a来完成ContextListener(这听起来比1更好).这可能是一种干净的方法来启动contextInitialized方法内的调度程序并关闭contextDestroyed方法内的调度程序.
  3. 使用MBean描述符.我开发了一个MBean,它将在服务器启动mbeans-descriptor.xml文件时启动.

对我来说,看起来第二种方法更好.第三个可能不是一个好主意,因为它显然不是由jconsole监视的MBean.我的目的是启动调度程序并在tomcat停止时停止它.有没有更好,更清洁的方法来做到这一点?

Gre*_*ase 15

我也会推荐第二种方法,使用只存在一些服务的Servlet,虽然常见的用法,对我来说似乎很苛刻.

看来quartz已经为这个目的提供了一个ServletContextListener:

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

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

详情.