Reputation: 7108
I am using tomcat version 6.0. My requirement is that when tomcat starts up, I would like to start a QuartzScheduler
which will schedule some jobs at a regular interval. I am trying to figure out the best possible way to do it. Here are the options that I could think of -
load-on-startup
" descriptor in web.xml
file to start the scheduler and schedule the jobs inside the servlet.ContextListener
(this sounds a better approach to me than 1). This might be a clean approach to start the scheduler inside the contextInitialized
method and shutdown the scheduler inside contextDestroyed
method.To me, it looks like second approach is better. Third one might not be a good idea as it is clearly not a MBean to be monitored by jconsole or so. My purpose is to start the scheduler and stop it when tomcat stops. Is there any better and cleaner way to do this ?
Upvotes: 16
Views: 25994
Reputation: 3240
I would recommend the second approach as well, using a Servlet that exists only to start up some service, while a common usage, seems hacky to me.
It appears that quartz already provides a ServletContextListener for this exact purpose:
http://quartz-scheduler.org/documentation/quartz-2.x/cookbook/ServletInitScheduler
and
http://www.quartz-scheduler.org/api/2.0.0/
for details.
Upvotes: 15