日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Spring定時(shí)器的兩種實(shí)現(xiàn)方式

有兩種流行Spring定時(shí)器配置:Java的Timer類和OpenSymphony的Quartz。
 
1.Java Timer定時(shí)

創(chuàng)新互聯(lián)建站云計(jì)算的互聯(lián)網(wǎng)服務(wù)提供商,擁有超過(guò)13年的服務(wù)器租用、多線服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn),已先后獲得國(guó)家工業(yè)和信息化部頒發(fā)的互聯(lián)網(wǎng)數(shù)據(jù)中心業(yè)務(wù)許可證。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。

首先繼承java.util.TimerTask類實(shí)現(xiàn)run方法

 
 
 
  1. import java.util.TimerTask;   
  2. public class EmailReportTask extends TimerTask{   
  3.     @Override   
  4.     public void run() {   
  5.         ...   
  6.     }     
  7. }   

在Spring定義

...

配置Spring定時(shí)器

 
 
 
  1.    
  2.    
  3.    
  4. 86400000 value>   
  5. property>   
  6. bean>   

timerTask屬性告訴ScheduledTimerTask運(yùn)行哪個(gè)。86400000代表24個(gè)小時(shí)

啟動(dòng)Spring定時(shí)器

Spring的TimerFactoryBean負(fù)責(zé)啟動(dòng)定時(shí)任務(wù)

 
 
 
  1.    
  2.    
  3.     list>   
  4. property>   
  5. bean>   
  6. scheduledTimerTasks里顯示一個(gè)需要啟動(dòng)的定時(shí)器任務(wù)的列表。   
  7. 可以通過(guò)設(shè)置delay屬性延遲啟動(dòng)   
  8.    
  9.    
  10.    
  11. 86400000 value>   
  12. property>   
  13.    
  14. 3600000 value>   
  15. property>   
  16. bean>   

這個(gè)任務(wù)我們只能規(guī)定每隔24小時(shí)運(yùn)行一次,無(wú)法精確到某時(shí)啟動(dòng)

2.Quartz定時(shí)器

首先繼承QuartzJobBean類實(shí)現(xiàn)executeInternal方法

 
 
 
  1. import org.quartz.JobExecutionContext;   
  2. import org.quartz.JobExecutionException;   
  3. import org.springframework.scheduling.quartz.QuartzJobBean;   
  4.  
  5. public class EmailReportJob extends QuartzJobBean{   
  6. protected void executeInternal(JobExecutionContext arg0)   
  7. throws JobExecutionException {   
  8. ...   
  9. }   
  10. }   

在Spring中定義

 
 
 
  1.    
  2.    
  3. EmailReportJob value>   
  4. property>   
  5.    
  6.        
  7.            
  8.                
  9.              entry>   
  10.      map>   
  11. property>   
  12. bean>   

在這里我們并沒(méi)有直接聲明一個(gè)EmailReportJob Bean,而是聲明了一個(gè)JobDetailBean。這個(gè)是Quartz的特點(diǎn)。JobDetailBean是Quartz的org.quartz.JobDetail的子類,它要求通過(guò)jobClass屬性來(lái)設(shè)置一個(gè)Job對(duì)象。

使用Quartz的JobDetail中的另一個(gè)特別之處是EmailReportJob的courseService屬性是間接設(shè)置的。JobDetail的jobDataAsMap屬性接受一個(gè)Map,包括設(shè)置給jobClass的各種屬性,當(dāng)。JobDetailBean實(shí)例化時(shí),它會(huì)將courseService Bean注入到EmailReportJob 的courseService 屬性中。

啟動(dòng)定時(shí)器

Quartz的org.quartz.Trigger類描述了何時(shí)及以怎樣的頻度運(yùn)行一個(gè)Quartz工作。Spring提供了兩個(gè)觸發(fā)器SimpleTriggerBean和CronTriggerBean。
SimpleTriggerBean與scheduledTimerTasks類似。指定工作的執(zhí)行頻度,模仿scheduledTimerTasks配置 .

 
 
 
  1.    
  2.    
  3.    
  4. 360000 value>   
  5. property>   
  6.    
  7.     86400000 value>   
  8. property>   
  9. bean>   

startDelay也是延遲1個(gè)小時(shí)啟動(dòng)

CronTriggerBean指定工作的準(zhǔn)確運(yùn)行時(shí)間

 
 
 
  1.    
  2.    
  3.    
  4. 0 0 6 * * ? value>   
  5. property>   
  6. bean>   

屬性cronExpression告訴何時(shí)觸發(fā)。最神秘就是cron表達(dá)式:
 
Linux系統(tǒng)的計(jì)劃任務(wù)通常有cron來(lái)承擔(dān)。一個(gè)cron表達(dá)式有至少6個(gè)(也可能7個(gè))有空格分隔的時(shí)間元素。從左到右:
 
1.秒2.分3.小時(shí)4.月份中的日期(1-31)5.月份(1-12或JAN-DEC)6.星期中的日期(1-7或SUN-SAT)7.年份(1970-2099)
每個(gè)元素都顯示的規(guī)定一個(gè)值(如6),一個(gè)區(qū)間(9-12),一個(gè)列表(9,11,13)或一個(gè)通配符(*)。因?yàn)?和6這兩個(gè)元素是互斥的,因此應(yīng)該通過(guò)設(shè)置一個(gè)問(wèn)號(hào)(?)來(lái)表明不想設(shè)置的那個(gè)字段,“/”如果值組合就表示重復(fù)次數(shù)(10/6表示每10秒重復(fù)6次)。

啟動(dòng)定時(shí)器

 
 
 
  1.    
  2.        
  3.         list>   
  4.      property>   
  5. bean>   

triggers屬性接受一組觸發(fā)器。


文章題目:Spring定時(shí)器的兩種實(shí)現(xiàn)方式
文章起源:http://www.5511xx.com/article/cojphsh.html