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

2022-09-03 07:10:33

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

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

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


答案 1

我也会推荐第二种方法,使用仅存在的Servlet来启动某些服务,虽然这是一种常见的用法,但对我来说似乎很麻烦。

看来quartz已经为此提供了一个ServletContextListener:

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

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

了解详情。


答案 2

推荐