2010-06-04 70 views
15

我正在使用tomcat版本6.0。我的要求是,當tomcat啓動時,我想開始一個QuartzScheduler,它會定期安排一些工作。我試圖找出最好的方法來做到這一點。下面是我能想到的選項 -在啓動時集成tomcat和Quartz調度程序

  1. 我可以web.xml文件通過與「load-on-startup」描述一個servlet做到這一點,開始調度和調度的servlet的內部工作。
  2. 可以使用ContextListener完成(這對我來說聽起來比1更好)。這可能是一種乾淨的方法,在contextInitialized方法內啓動調度程序並關閉contextDestroyed方法中的調度程序。
  3. 使用MBean描述符。我開發了一個MBean,它將在服務器啓動時使用mbeans-descriptor.xml文件啓動。

對我來說,看起來第二種方法更好。第三個可能不是一個好主意,因爲它顯然不是被jconsole監控的MBean。我的目的是啓動調度程序並在tomcat停止時停止它。 有沒有更好更清潔的方法來做到這一點?

+0

下面是一個如何在spring中執行此操作的示例:http://bxm.at/blogs/java/2007/08/29/quartz_spring – 2010-06-04 16:22:52

+0

鏈接到@AshKim的博客已移動:http:// blog。 ehrnhoefer.com/2007-08-29-quartz-2-spring/ – Fodder 2016-04-06 23:38:48

回答

14

我會推薦第二種方法,使用一個只存在啓動一些服務的Servlet,而一個常見的用法,對我來說似乎很難受。

看來,石英已經提供了ServletContextListener爲此確切的目的:

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

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

瞭解詳情。

+0

Opps從來不知道Quartz已經提供了ContextListenner。非常感謝你。 – Shamik 2010-06-04 16:27:35

相關問題