Chuck Cavaness 著
译者博客: http://unmi.blogjava.net/
继续我的内容。本篇介绍怎么在Web Application中加入Quartz 并执行简单的工作调度。
1) 在web.xml中配置Quartz,使它在装载Application时就启动Quartz
<!-- Start: Quartz servlet configuration -->
<servlet>
<description></description>
<display-name>Quartz Initializer Servlet</display-name>
<servlet-name>QuartzInitializerServlet</servlet-name>
<servlet-class>org.quartz.ee.servlet.QuartzInitializerServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- End: Quartz servlet configuration -->
2) 在quartz.properties中配置两个参数
#自定义instance name,通常和项目相关,不是关键属性
org.quartz.scheduler.instanceName = myProjectName
#文件名自定,只要有一个对应的文件即可
org.quartz.plugin.jobInitializer.fileNames= quartz-jobs.xml
<quartz xmlns=" http://www.quartzscheduler.org/ns/quartz"
xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=" http://www.quartzscheduler.org/ns/quartz http://www.quartzscheduler.org/ns/quartz/job_scheduling_data_1_1.xsd"
version="1.1">
<job>
<job-detail>
<name>CollectJob</name>
<group>CollectJobs</group>
<job-class>com.xxx.CollectJob</job-class>
<volatility>false</volatility>
<durability>false</durability>
<recover>false</recover>
</job-detail>
<trigger>
<simple>
<name>CollectTrigger</name>
<group>DEFAULT</group>
<job-name>CollectJob</job-name>
<job-group>DEFAULT</job-group>
<start-time>2008-11-30T10:00:00 AM</start-time>
<!-- repeat indefinitely every day -->
<repeat-count>-1</repeat-count>
<repeat-interval>7200000</repeat-interval>
</simple>
</trigger>
</job>
</quartz>
* Get logger for collect job.
*
* @return logger
*/
public static Logger getLogger() {
return logger;
}
public void execute(JobExecutionContext context)
throws JobExecutionException {
long collectorStartTime = System.currentTimeMillis();
logger.info("Collector: " + context.getJobDetail().getName()
+ " started at " + new Date());
+ " ended at " + new Date());
long collectorEndTime = System.currentTimeMillis();
logger.info("It costs " + (collectorEndTime - collectorStartTime)
+ " milliseconds.");
}
...