项目简称webapp
1.将Quartz的quartz-all-1.5.2.jar文件放入webapp的WEB-INF\lib下
2.在webapp的web.xml中加入:
<servlet>
<servlet-name>QuartzInitializer</servlet-name>
<servlet-class>org.quartz.ee.servlet.QuartzInitializerServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
3.然后新建一个quartz.properties,放在webapp的classpath下面,即src下:
#
# Configure Main Scheduler Properties
#
org.quartz.scheduler.instanceName = TestScheduler
org.quartz.scheduler.instanceId = one
#
# Configure ThreadPool
#
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 5
org.quartz.threadPool.threadPriority = 4
#
# Configure JobStore
#
org.quartz.jobStore.misfireThreshold = 5000
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
# ===========================================================================
# Configure SchedulerPlugins ===============================================
# ===========================================================================
org.quartz.plugin.triggHistory.class = org.quartz.plugins.history.LoggingTriggerHistoryPlugin
org.quartz.plugin.triggHistory.triggerFiredMessage = Trigger {1}.{0} fired job {6}.{5} at: {4, date, HH:mm:ss MM/dd/yyyy}
org.quartz.plugin.triggHistory.triggerCompleteMessage = Trigger {1}.{0} completed firing job {6}.{5} at {4, date, HH:mm:ss MM/dd/yyyy} with resulting trigger instruction code: {9}
org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin
#定义quartz_reminder.xml(见下一步)的路径
org.quartz.plugin.jobInitializer.fileName = /quartz_reminder.xml
org.quartz.plugin.jobInitializer.overWriteExistingJobs = false
org.quartz.plugin.jobInitializer.failOnFileNotFound = true
org.quartz.plugin.shutdownhook.class = org.quartz.plugins.management.ShutdownHookPlugin
org.quartz.plugin.shutdownhook.cleanShutdown = true
4.新建一个quartz_reminder.xml,其中定义job和trigger的信息:
<?xml version="1.0" encoding="UTF-8"?>
<quartz xmlns="http://www.opensymphony.com/quartz/JobSchedulingData"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
overwrite-existing-jobs="true">
<job>
<job-detail>
<!-- job 的名字 -->
<name>test-job</name>
<group>DEFAULT</group>
<description>The job description</description>
<!-- job类的路径加类名 -->
<job-class>com.joysen.rule.scheduler.MyJob</job-class>
<!-- job-data-map allows-transient-data="false">
<entry>
<key>burger-type</key>
<value>hotdog</value>
</entry>
<entry>
<key>dressing-list</key>
<value>ketchup,mayo</value>
</entry>
</job-data-map -->
</job-detail>
<trigger>
<cron>
<!-- trigger 的名字 -->
<name>test-trigger</name>
<group>DEFAULT</group>
<!-- trigger对应的job的相关信息 -->
<job-name>test-job</job-name>
<job-group>DEFAULT</job-group>
<!-- 每5秒执行一次 -->
<cron-expression>0/5 * * * * ?</cron-expression>
</cron>
</trigger>
</job>
</quartz>
注:
cron-expression表示执行job的时间
5.然后在com.joysen.rule.scheduler下面新建MyJob.java文件
MyJob必须实现Quartz的Job接口
public class MyJob implements Job {
public void execute(JobExecutionContext context) throws JobExecutionException {
//在控制台输出如下信息。
System.out.println("Quartz Test");
}
}