下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 倉儲物流題庫及答案
- 哲學教育考試試題及答案
- 古代玄學考試試題及答案
- 故宮問題面試試題及答案
- 腫瘤內(nèi)科考試題庫及答案
- 注冊城鄉(xiāng)規(guī)劃師考試模擬試題附答案
- 維修工崗位培訓試題附答案
- 2025年中式烹調(diào)師初級工理論知識考試試題庫及答案
- 《建筑識圖與構造》習題庫(含參考答案)
- 經(jīng)濟師(中級)金融專業(yè)知識試題及答案
- 中小學人工智能教育三年發(fā)展規(guī)劃(2026-2028)7500字完整方案目標務實真能落地
- 口腔現(xiàn)場義診培訓
- 江蘇省南京市六校聯(lián)合體2026屆高一數(shù)學第一學期期末監(jiān)測試題含解析
- 2026年滁州全椒縣教育體育局所屬學校校園招聘教師16名筆試備考題庫及答案解析
- 保溫一體板外墻施工方案
- 廣州大學2026年第一次公開招聘事業(yè)編制輔導員備考題庫及1套參考答案詳解
- 廣州市衛(wèi)生健康委員會直屬事業(yè)單位廣州市第十二人民醫(yī)院2025年第一次公開招聘備考題庫完整答案詳解
- 2024-2025學年廣東省廣州市越秀區(qū)八年級上學期期末數(shù)學試卷(含答案)
- (正式版)DB51∕T 3340-2025 《特長公路隧道消防站建設規(guī)范》
- 2026年中職財經(jīng)商貿(mào)類專業(yè)教師資格證面試含答案
- 2026屆江蘇省徐州市侯集高級中學高一上數(shù)學期末復習檢測試題含解析
評論
0/150
提交評論