Spring Quartz定時器 的動態(tài)調(diào)度_第1頁
Spring Quartz定時器 的動態(tài)調(diào)度_第2頁
Spring Quartz定時器 的動態(tài)調(diào)度_第3頁
Spring Quartz定時器 的動態(tài)調(diào)度_第4頁
Spring Quartz定時器 的動態(tài)調(diào)度_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、Spring Quartz定時器 的動態(tài)調(diào)度眾所周知spring的Quartz定時器的功能非常強大,可以在特定的年月日小時 分秒的時間點觸發(fā)時間,完成事件的調(diào)度,就像windows中得計劃任務一樣。下 面看一個典型的Quartz定時器的實現(xiàn):1、首先實現(xiàn)一個用于被執(zhí)行的類,這個類用于被定時器調(diào)度,這個類不需要繼 承任何類或者接口,代碼如下:publicTestQuartz(public void doSomething()(/TODO)2、spring配置文件,具體配置006*? 這樣一來,一個簡單的Spring Quartz定時器就完成了,這個定時器會在每天早 上6點去調(diào)testQuarzt

2、類中得doSomething方法,至于為什么是早上六點鐘將在 最后解釋。但是假設這個定時器部署在tomcat中,如果我們要修改定時器的調(diào)度時間,就 必須修改spring配置文件,再重啟tomcat,事實上,有很多時候我們沒有條件 去重啟tomcat,或者,有特定的需求,需要前臺可以直接修改調(diào)度時間,這樣 一來,問題就出現(xiàn)了。但是我們細心觀察,不難發(fā)現(xiàn),調(diào)度的時間其實是 org.springframework.scheduling.quartz.CronTriggerBean 這個 類里面 的 cronExpression屬性控制著定時器的調(diào)度時間,而事實上,spring肯定在加載 配 置 文

3、件 的 時 候, 生 成 org.springframework.scheduling.quartz.SchedulerFactoryBean 的 對象, org.springframework.scheduling.quartz.CronTriggerBean 的對象,如果我們 可以獲取這兩個對象,問題似乎可以解決了,事實上,我們獲取這個對象是非常 容易的,只要將這兩個對象注入到我們的類中,而且,事實上,在 SchedulerFactoryBean中提供了很多方法可以方便我們進行操作。接下來將作如下修改:1、修改TestQuartz類,代碼如下:publicTestQuartz(privat

4、eSchedulerscheduler ;/設值注入,通過setter方法傳入被調(diào)用者的實例schedulerpublic void setScheduler(Schedulerscheduler) ( this.scheduler =scheduler;public void doSomething()/TODOpublic void resetJob(StringcronExpression)(/運行時可通過動態(tài)注入B的scheduler得到trigger,注意采用這種注入方式在有的項目中會有 問題,如果遇到注入問題,可以采取在運行方法時候,獲得Dean來避免錯誤發(fā)生。CronTrigge

5、rBeantrigger=(CronTriggerBean)scheduler.getTrigger(testTrigger,Scheduler.DEFAULT_GROUP);StringoriginConExpression =trigger .getCronExpression。;/如果相等,則表示用戶并沒有重新設定數(shù)據(jù)庫中的任務時間,這種情況不需要重新 rescheduleJobif(!originConExpression.equalsIgnoreCase(cronExpression)trigger.setCronExpression(cronExpression);schedule

6、r.rescheduleJob(testTriggerfScheduler .DEFAULT_GROU巳trigger);2、spring配置文件的修改,如下:006*? 如此一來,這個可以動態(tài)調(diào)度的定時器就完成了,接下來,將以下那個調(diào)度時間 格式的問題。字段允許值允許的特殊字符秒 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 * *

7、 ?在每天中午12: 00觸發(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: 00至2: 59之間每分鐘觸發(fā)一次0 0/5 14 * * ?每天在下午2: 00至2: 59之間每5分鐘觸發(fā)一次0 0/5 14,18 * * ?每天在下午2: 00至2: 59和6: 00至6: 59之間的每5分鐘觸發(fā)一次0 0-5 14 * * ?每天在下午2: 00至2: 05之間每分鐘觸發(fā)一次0

8、10,44 14 ? 3 WED每三月份的星期三在下午2: 00和2: 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, 2003, 2004 and 2005年的每個月的最后一個星期五的上午10: 15觸發(fā)0 15 10 ? * 6#3在每個月的第三個星期五的上午10: 15觸發(fā)0 0 12 1/5 * ?從每月的第一天起

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論