public class QuartzInitializerListener
extends java.lang.Object
implements javax.servlet.ServletContextListener
A ServletContextListner that can be used to initialize Quartz.
You'll want to add something like this to your WEB-INF/web.xml file:
<context-param> <param-name>config-file</param-name> <param-value>/some/path/my_quartz.properties</param-value> </context-param> <context-param> <param-name>shutdown-on-unload</param-name> <param-value>true</param-value> </context-param> <context-param> <param-name>start-scheduler-on-load</param-name> <param-value>true</param-value> </context-param> <listener> <listener-class> org.quartz.ee.servlet.QuartzInitializerListener </listener-class> </listener>
The init parameter 'config-file' can be used to specify the path (and filename) of your Quartz properties file. If you leave out this parameter, the default ("quartz.properties") will be used.
The init parameter 'shutdown-on-unload' can be used to specify whether you want scheduler.shutdown() called when the servlet is unloaded (usually when the application server is being shutdown). Possible values are "true" or "false". The default is "true".
The init parameter 'start-scheduler-on-load' can be used to specify whether you want the scheduler.start() method called when the servlet is first loaded. If set to false, your application will need to call the start() method before the scheduler begins to run and process jobs. Possible values are "true" or "false". The default is "true", which means the scheduler is started.
A StdSchedulerFactory instance is stored into the ServletContext. You can gain access to the factory from a ServletContext instance like this:StdSchedulerFactory factory = (StdSchedulerFactory) ctx .getAttribute(QuartzInitializerListener.QUARTZ_FACTORY_KEY);
The init parameter 'servlet-context-factory-key' can be used to override the
name under which the StdSchedulerFactory is stored into the ServletContext, in
which case you will want to use this name rather than
QuartzInitializerListener.QUARTZ_FACTORY_KEY
in the above example.
The init parameter 'start-delay-seconds' can be used to specify the amount of time to wait after initializing the scheduler before scheduler.start() is called.
Once you have the factory instance, you can retrieve the Scheduler instance by callinggetScheduler()
on the factory.Modifier and Type | Field and Description |
---|---|
static java.lang.String |
QUARTZ_FACTORY_KEY |
Constructor and Description |
---|
QuartzInitializerListener() |
Modifier and Type | Method and Description |
---|---|
void |
contextDestroyed(javax.servlet.ServletContextEvent sce) |
void |
contextInitialized(javax.servlet.ServletContextEvent sce) |
public static final java.lang.String QUARTZ_FACTORY_KEY
public void contextInitialized(javax.servlet.ServletContextEvent sce)
contextInitialized
in interface javax.servlet.ServletContextListener
public void contextDestroyed(javax.servlet.ServletContextEvent sce)
contextDestroyed
in interface javax.servlet.ServletContextListener