一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Spring 中的定時器TimerTask 與 quartz的使用

 jl_oracle 2011-09-06
所需的jar包:quartz-all-1.6.0.jar,spring-support-2.jar,spring.jar

代碼  java類
  1. package com.east.spring.quartz;  
  2.   
  3. import java.util.Date;  
  4.   
  5. import org.quartz.JobExecutionContext;  
  6. import org.quartz.JobExecutionException;  
  7. import org.quartz.StatefulJob;  
  8. import org.springframework.scheduling.quartz.QuartzJobBean;  
  9. /** 
  10.  *  
  11.  * @author East(張棟芳) QQ:271536394 
  12.  * @date:2008-6-18 
  13.  * @content:EmailReportJob 
  14.  * @version 1.0 
  15.  */  
  16. public class EmailReportJob extends QuartzJobBean{  
  17.   
  18.     @Override  
  19.     protected void executeInternal(JobExecutionContext context)  
  20.             throws JobExecutionException {  
  21.         // TODO   
  22.         System.out.println("===============QuartzJobBean================EmailReportJob is running"+new Date());   
  23.           
  24.     }  
  25.   
  26. }  

 

 

  1. package com.east.spring.quartz;  
  2.   
  3. import java.util.Date;  
  4.   
  5. public class CourseService {  
  6.   
  7.     CourseService()  
  8.     {  
  9.         System.out  
  10.                 .println("====================CourseService========================="  
  11.                         + new Date());  
  12.     }  
  13. }  

 

 

  1. package com.east.spring.time;  
  2.   
  3. import java.util.Date;  
  4. import java.util.TimerTask;  
  5. /** 
  6.  *  
  7.  * @author East(張棟芳) QQ:271536394 
  8.  * @date:2008-6-18 
  9.  * @content:EamilTask 
  10.  * @version 1.0 
  11.  */  
  12. public class EamilTask extends TimerTask {  
  13.   
  14.     @Override  
  15.     public void run() {  
  16.         //TODO 定時調(diào)用的Task  
  17.         System.out.println("=========================EamilTask is running"+new Date());   
  18.     }  
  19.   
  20. }  

 

2. 最重的是配置文件 applicationContext.xml

 

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www./schema/beans"  
  3.     xmlns:xsi="http://www./2001/XMLSchema-instance"  
  4.     xsi:schemaLocation="http://www./schema/beans http://www./schema/beans/spring-beans-2.0.xsd"  
  5.     default-lazy-init="false">  
  6.   
  7.   
  8.     <bean id="eamilTask" class="com.east.spring.time.EamilTask" />  
  9.     <!-- 對定時器進行設(shè)置每隔30秒調(diào)用一次emailTask -->  
  10.     <bean id="springSchedule"  
  11.         class="org.springframework.scheduling.timer.ScheduledTimerTask">  
  12.         <property name="timerTask" ref="eamilTask"></property>  
  13.   
  14.         <property name="period">  
  15.             <value>10000</value>  
  16.         </property>  
  17.   
  18.         <property name="delay">  
  19.             <value>1000</value>  
  20.         </property>  
  21.     </bean>  
  22.   
  23.     <!-- 啟動定時器 -->  
  24.     <bean id="startTimeTask"  
  25.         class="org.springframework.scheduling.timer.TimerFactoryBean">  
  26.         <property name="scheduledTimerTasks">  
  27.             <list>  
  28.                 <ref bean="springSchedule" />  
  29.             </list>  
  30.   
  31.         </property>  
  32.     </bean>  
  33.   
  34.     <!-- =========================quartz 定時器====================================================== -->  
  35.     <bean id="courseService" class="com.east.spring.quartz.CourseService"></bean>  
  36.       
  37.     <bean id="reportJob"  
  38.         class="org.springframework.scheduling.quartz.JobDetailBean">  
  39.         <property name="jobClass">  
  40.             <value>com.east.spring.quartz.EmailReportJob</value>  
  41.         </property>  
  42.   
  43.         <property name="jobDataAsMap">  
  44.             <map>  
  45.                 <entry key="courseService">  
  46.                     <ref bean="courseService" />  
  47.                 </entry>  
  48.             </map>  
  49.         </property>  
  50.     </bean>  
  51.   
  52.     <!-- 定時器 -->  
  53.     <bean id="simpleReportTrigger"  
  54.         class="org.springframework.scheduling.quartz.SimpleTriggerBean">  
  55.         <property name="jobDetail" ref="reportJob"></property>  
  56.         <property name="startDelay">  
  57.             <value>6000</value>  
  58.         </property>  
  59.   
  60.         <property name="repeatInterval">  
  61.             <value>86400000</value>  
  62.         </property>  
  63.     </bean>  
  64.     <!-- CronTriggerBean指定工作的準確運行時間  -->  
  65.     <bean id="cronReportTrigger"  
  66.         class="org.springframework.scheduling.quartz.CronTriggerBean">  
  67.         <property name="jobDetail" ref="reportJob"></property>  
  68.         <property name="cronExpression">  
  69.             <value>10 * * * * ?</value>  
  70.         </property>  
  71.     </bean>  
  72.   
  73.     <!-- 啟動定時器 -->  
  74.     <bean  
  75.         class="org.springframework.scheduling.quartz.SchedulerFactoryBean">  
  76.         <property name="triggers">  
  77.             <list>  
  78.                 <ref bean="cronReportTrigger" />  
  79.             </list>  
  80.         </property>  
  81.     </bean>  
  82.   
  83.   
  84. </beans>  

 

 

 

3. Spring中任務(wù)調(diào)度cronExpression配置說明

 

 

 

字段

 

允許值

 

允許的特殊字符

  

0-59

  

, - * /

  

0-59

  

, - * /

小時

  

0-23

  

, - * /

日期

  

1-31

  

, - * ? / L W C

月份

  

1-12 或者 JAN-DEC

  

, - * /

星期

  

1-7 或者 SUN-SAT

  

, - * ? / L C #

年(可選)

  

留空, 1970-2099

  

, - * /

表達式

 

意義

"0 0 12 * * ?"

  

每天中午12點觸發(fā)

"0 15 10 ? * *"

  

每天上午10:15觸發(fā)

"0 15 10 * * ?"

  

每天上午10:15觸發(fā)

"0 15 10 * * ? *"

  

每天上午10:15觸發(fā)

"0 15 10 * * ? 2005"

  

2005年的每天上午10:15觸發(fā)

"0 * 14 * * ?"

  

在每天下午2點到下午2:59期間的每1分鐘觸發(fā)

"0 0/5 14 * * ?"

  

在每天下午2點到下午2:55期間的每5分鐘觸發(fā)

"0 0/5 14,18 * * ?"

  

在每天下午2點到2:55期間和下午6點到6:55期間的每5分鐘觸發(fā)

"0 0-5 14 * * ?"

  

在每天下午2點到下午2:05期間的每1分鐘觸發(fā)

"0 10,44 14 ? 3 WED"

  

每年三月的星期三的下午2:102:44觸發(fā)

"0 15 10 ? * MON-FRI"

  

周一至周五的上午10:15觸發(fā)

"0 15 10 15 * ?"

  

每月15日上午10:15觸發(fā)

"0 15 10 L * ?"

  

每月最后一日的上午10:15觸發(fā)

"0 15 10 ? * 6L"

  

每月的最后一個星期五上午10:15觸發(fā)

"0 15 10 ? * 6L 2002-2005"

  

2002年至2005年的每月的最后一個星期五上午10:15觸發(fā)

"0 15 10 ? * 6#3"

  

每月的第三個星期五上午10:15觸發(fā)

 

特殊字符

 

意義

*

  

表示所有值;

  

表示未說明的值,即不關(guān)心它為何值;

-

  

表示一個指定的范圍;

,

  

表示附加一個可能值;

/

  

符號前表示開始時間,符號后表示每次遞增的值;

L("last")

  

("last") "L" 用在day-of-month字段意思是 "這個月最后一天";用在 day-of-week字段, 它簡單意思是 "7" or "SAT"。如果在day-of-week字段里和數(shù)字聯(lián)合使用,它的意思就是 "這個月的最后一個星期幾" – 例如: "6L" means "這個月的最后一個星期五". 當我們用“L”時,不指明一個列表值或者范圍是很重要的,不然的話,我們會得到一些意想不到的結(jié)果。

W("weekday")

  

只能用在day-of-month字段。用來描敘最接近指定天的工作日(周一到周五)。例如:在day-of-month字段用“15W”最接近這個月第15天的工作日,即如果這個月第15天是周六,那么觸發(fā)器將會在這個月第14天即周五觸發(fā);如果這個月第15天是周日,那么觸發(fā)器將會在這個月第16 天即周一觸發(fā);如果這個月第15天是周二,那么就在觸發(fā)器這天觸發(fā)。注意一點:這個用法只會在當前月計算值,不會越過當前月。“W”字符僅能在day- of-month指明一天,不能是一個范圍或列表。也可以用“LW”來指定這個月的最后一個工作日。

#

  

只能用在day-of-week字段。用來指定這個月的第幾個周幾。例:在day-of-week字段用"6#3"指這個月第3個周五(6指周五,3指第3個)。如果指定的日期不存在,觸發(fā)器就不會觸發(fā)。

C

  

指和calendar聯(lián)系后計算過的值。例:在day-of-month 字段用“5C”指在這個月第5天或之后包括calendar的第一天;在day-of-week字段用“1C”指在這周日或之后包括calendar的第一天。

MONTHDay Of Week字段里對字母大小寫不敏感

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    免费性欧美重口味黄色| 久久精品色妇熟妇丰满人妻91| 91亚洲精品亚洲国产| 欧美精品亚洲精品一区| 色偷偷偷拍视频在线观看| 精品欧美一区二区三久久| 视频在线免费观看你懂的| 免费精品一区二区三区 | 久久亚洲国产视频三级黄| 91在线爽的少妇嗷嗷叫| 欧美日韩无卡一区二区| 中文字幕中文字幕在线十八区 | 99久久国产综合精品二区| 综合久综合久综合久久| 一区二区三区日本高清| 高清免费在线不卡视频| 99久久人妻精品免费一区| 在线欧美精品二区三区| 91香蕉视频精品在线看| 香蕉尹人视频在线精品| 五月婷婷六月丁香在线观看| 国产一级片内射视频免费播放| 日韩av欧美中文字幕| 麻豆果冻传媒一二三区| 国产又大又硬又粗又黄| 久久精品亚洲精品一区| 欧美大黄片在线免费观看| 精品推荐国产麻豆剧传媒| 中文字幕免费观看亚洲视频| 欧美日本精品视频在线观看| 国产精品久久精品毛片| 后入美臀少妇一区二区| 视频一区中文字幕日韩| 亚洲精品成人福利在线| 99久久精品一区二区国产| 欧美亚洲91在线视频| 冬爱琴音一区二区中文字幕| 国产日本欧美特黄在线观看| 亚洲一区二区三区国产| 91在线国内在线中文字幕| 一二区不卡不卡在线观看|