我使用的版本是2.1.7,和网上大多数流行的版本是不兼容的,因此配置有些许不同。
一、先配置web.xml,这个与先前版本并无太大差异
<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 >
<load-on-startup >1 </load-on-startup>
</servlet >
注:这里quartz.properties文件是以classpath为基准配置的相对路径,classpath也就是web项目中的src文件夹
二、配置quartz.properties,就像这样:
org.quartz.scheduler.instanceName = MyScheduler
org.quartz.threadPool.threadCount = 3
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
org.quartz.plugin.jobInitializer.class =org.quartz.plugins.xml.XMLSchedulingDataProcessorPlugin
org.quartz.plugin.jobInitializer.fileNames = quartz_job.xml
org.quartz.plugin.jobInitializer.failOnFileNotFound = true
org.quartz.scheduler.instanceName-时间调度器的名字,默认为MyScheduler;
org.quartz.threadPool.threadCount-线程池的数量,意味着最大有3个jobs能够同时运行;
org.quartz.jobStore.class-所有jobs的数据信息包括作业和触发器的细节的存储地,默认内存RAMJobStore
这里利用xml来配置job和trigger的关系;
这里quartz_job.xml同样也是以classpath作为相对路径的基准;
三、quartz_job.xml
<?xml version= '1.0' encoding ='utf-8'?>
<job-scheduling-data
xmlns= "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> job1</ name>
<group> group1</ group>
<description> 这是一个作业</description >
<job-class> org.util.job.TestJob</job-class >
</job>
<trigger>
<cron>
<name> trigger1</ name>
<group> tgroup</ group>
<job-name> job1</ job-name>
<job-group> group1</ job-group>
<cron-expression> 0/3 * * * * ?</cron-expression >
</cron>
</trigger>
</schedule>
</job-scheduling-data>
注:这里需要注意的是,该xml文件的格式和之前的版本不兼容,只有此处不兼容
四、TestJob.java
public class TestJob implements Job{
@Override
public void execute()throws JobExecutionException {
//定义作业执行内容......
}
}