標籤:orm 時間表 job name sch str exception com tar
第一步:下載所需的Jar包
commons-beanutils.ja、commons-collections.jar、commons-logging.jar、commons-digester.jar、quartz.jar包
第二步:在web.xml下配置監聽
在web.xml下配置監聽的目的是為了項目編譯的時候就自動運行監聽下配置的業務類。
<!--監聽(作用就是啟動項目的時候就會運行這個類,這個類需要實現ServletContextListener介面)--><listener> <listener-class> com.qt.quartz.QuartzMain </listener-class> </listener>
第三步:編寫com.qt.quartz.QuartzMain類
這個類只是作為啟動類,調用QuartzLoad類的2個方法,因為這個類是靜態,所以可以用名稱直接點出方法名稱。
package com.qt.quartz;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;public class QuartzMain implements ServletContextListener { // 伺服器啟動時執行該事件 @Override public void contextInitialized(ServletContextEvent arg0) { try { QuartzLoad.run(); } catch (Exception e) { e.printStackTrace(); } } // 伺服器停止時執行該事件 @Override public void contextDestroyed(ServletContextEvent arg0) { try { QuartzLoad.stop(); } catch (Exception e) { e.printStackTrace(); } }}
第四步:編寫com.qt.quartz.QuartzLoad類
這個類裡面有2個方法,一個是啟動quartz的方法,一個是關閉方法,這個類裡面可以定製每隔多少時間迴圈調用業務類一次。
package com.qt.quartz;import org.quartz.CronTrigger;import org.quartz.JobDetail;import org.quartz.Scheduler;import org.quartz.impl.StdSchedulerFactory;public class QuartzLoad { private static Scheduler sched; public static void run() throws Exception { //建立LzstoneTimeTask的定時任務 //三個參數,第一個是自己取得名稱、第二個是固定的、第三個是業務類 JobDetail jobDetail = new JobDetail("lzstoneJob",sched.DEFAULT_GROUP,QuartzJob.class); //三個參數,第一個是自己取得名稱、第二個是觸發器組名稱、第三個是自訂時間 CronTrigger trigger = new CronTrigger("lzstoneTrigger","lzstone","0/50 * * * * ?"); sched = new StdSchedulerFactory().getScheduler(); sched.scheduleJob(jobDetail,trigger); sched.start(); } //停止 public static void stop() throws Exception{ sched.shutdown(); } }
序號 說明 是否必填 允許填寫的值 允許的萬用字元
1 秒 是 0-59 , - * /
2 分 是 0-59 , - * /
3 小時 是 0-23 , - * /
4 日 是 1-31 , - * ? / L W
5 月 是 1-12 or JAN-DEC , - * /
6 周 是 1-7 or SUN-SAT , - * ? / L #
7 年 否 empty 或 1970-2099 , - * /
第五步:編寫QuartzJob.class類,自己的業務處理類
package com.qt.quartz;import java.text.SimpleDateFormat;import java.util.Date;import org.quartz.Job;import org.quartz.JobExecutionContext;import org.quartz.JobExecutionException;public class QuartzJob implements Job{ @Override public void execute(JobExecutionContext arg0) throws JobExecutionException { // TODO Auto-generated method stub SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS"); System.out.println("時間表:"+sdf.format(new Date())); }}
quartz在web.xml的配置