今天项目中刚好用到了。。。遇到了写问题。。在这里mark下。。。
第一步。WEB.MXL 配置servlet
<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>
第二步 SRC目录下面建立quartz.properties配置文件
org.quartz.scheduler.instanceName = PushDBScheduler
org.quartz.scheduler.instanceId = one
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.plugin.triggHistory.class = org.quartz.plugins.history.LoggingJobHistoryPlugin
org.quartz.threadPool.threadCount = 4
org.quartz.threadPool.threadPriority = 4
org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin
org.quartz.plugin.jobInitializer.fileName=quartz_job.xml
第三步新建quartz_job.xml文件。要和quartz.properties文件org.quartz.plugin.jobInitializer.fileName对应
<?xml version="1.0" encoding="UTF-8"?>
<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/job_scheduling_data_1_1.xsd"
version="1.1">
<job>
<job-detail>
<name>ScanItemsInDB</name>
<group>Scanning</group>
<job-class>com.lead.services.DownloadFile</job-class>
<job-data-map allows-transient-data="true">
<entry>
<key>testmode</key>
<value>true</value>
</entry>
</job-data-map>
</job-detail>
<trigger>
<cron>
<name>t1</name>
<group> Scanning </group>
<job-name>ScanItemsInDB</job-name>
<job-group>Scanning</job-group>
<cron-expression>0/1 * * * * ?</cron-expression>
</cron>
</trigger>
</job>
</quartz>
第四步实现JOB接口
public class DownloadFile implements Job
在EXECUTE完成逻辑。
public void execute(JobExecutionContext arg0) throws JobExecutionException {
try {
down();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
启动服务器。完成定时。
我在运行的时候第一个错误,一直不能执行定时操作。。没有错误。。。重启clean一下。重新启动。
第二个错误就坑爹了。。。。。。
一直爆一个错误。找不到java.lang.ClassNotFoundException: org.apache.commons.digester.RuleSet
坑爹啊。。。我看了一下自己的LIB。有这个commons-digester,jar。也有这个类。
网上很多解释也是导入这个包。。
解决办法导入commons-digester-2.1.jar,commons-digester3-3.0.jar。重启,重新发布OK。
附上我的整个包。
可能有不需要的包。。我也不去找了。。呵呵。。希望对大家有帮助