我的解决方案是更改配置。我创建了quartz.properties
org.quartz.scheduler.instanceName = XYZJoborg.quartz.threadPool.threadCount = 1org.quartz.jobStore.class = org.quartz.simpl.RAMJobStoreorg.quartz.plugin.jobInitializer.class =org.quartz.plugins.xml.XMLSchedulingDataProcessorPlugin org.quartz.plugin.jobInitializer.fileNames = quartz-config.xml org.quartz.plugin.jobInitializer.failonFileNotFound = true
一个quartz-config.xml
<?xml version="1.0" encoding="UTF-8"?><job-scheduling-dataxmlns="http://www.quartz-scheduler.org/xml/JobSchedulingData"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.quartz-scheduler.org/xml/JobSchedulingData http://www.quartz-scheduler.org/xml/job_scheduling_data_1_8.xsd"version="1.8"><schedule> <job> <name>XYZJob</name> <group>XYZGroup</group> <description>Check the contracts idle period</description> <job-class>com.test.job.cron.XYZJob</job-class> </job> <trigger> <cron> <name>CronTriggerName</name> <job-name>XYZJob</job-name> <job-group>XYZGroup</job-group> <!-- It will run every day at 1 am --> <cron-expression>0 0 1 * * ?</cron-expression> </cron> </trigger></schedule>
并在我的web.xml中使用QuartzInitializerServlet
<servlet> <servlet-name>QuartzInitializer</servlet-name> <servlet-class>org.quartz.ee.servlet.QuartzInitializerServlet</servlet-class> <init-param> <param-name>config-file</param-name> <param-value>quartz.properties</param-value> </init-param> <init-param> <param-name>shutdown-on-unload</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>start-scheduler-on-load</param-name> <param-value>true</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>
关闭Tomcat之后,我得到以下消息
INFO: QuartzInitializer: Quartz Scheduler successful shutdown.



