我使用的是tomcat 6.0版。我的要求是当tomcat启动时,我想启动一个QuartzScheduler
,它会定期安排一些工作。我试图找出最好的方法来做到这一点。以下是我能想到的选项 -
load-on-startup
文件中带有“web.xml
”描述符的servlet来启动调度程序并调度servlet中的作业。ContextListener
来完成(这听起来比1更好)。这可能是在contextInitialized
方法中启动调度程序并在contextDestroyed
方法中关闭调度程序的干净方法。对我来说,看起来第二种方法更好。第三个可能不是一个好主意,因为它显然不是由jconsole监视的MBean。我的目的是启动调度程序并在tomcat停止时停止它。 有没有更好更清洁的方法呢?
答案 0 :(得分:15)
我也会推荐第二种方法,使用仅用于启动某些服务的Servlet,虽然常见用法,但对我来说似乎很苛刻。
看来quartz已经为这个目的提供了一个ServletContextListener:
http://quartz-scheduler.org/documentation/quartz-2.x/cookbook/ServletInitScheduler
和
http://www.quartz-scheduler.org/api/2.0.0/
了解详情。