Spring定時任務(wù)在有的項目中起到很關(guān)鍵的作用,它允許你通過配置來指定特定時間去調(diào)用特定類的特定方法。
一. 分類
1.作業(yè)類需要繼承特定的類。特定的類有:
org.springframework.scheduling.quartz.QuartzJobBean;
java.util.TimerTask.
2.作業(yè)類就是自己定義的普通類。
作業(yè)類使用的觸發(fā)時間的方式主要有兩種。
1.在指定的時間調(diào)用。例如每天的每小時的15分,30分,45分,00分執(zhí)行任務(wù)。
org.springframework.scheduling.quartz.CronTriggerBean
2.每隔一段時間就調(diào)用。比如每過10分鐘就執(zhí)行一次特定的任務(wù)。
org.springframework.scheduling.quartz.SimpleTriggerBean
二. 定時任務(wù)的主要步驟:
1.導(dǎo)包
2.編寫任務(wù)類
3.配置文件中配置
解釋:a: 當(dāng)容器加在該配置文件的時候,首先實(shí)例化任務(wù)調(diào)度工廠,調(diào)度工廠的triggers屬性是一個list,里面存放
所有用戶定義的任務(wù)。
b: 找到這個任務(wù)后,會繼續(xù)找到這個任務(wù)的配置,這里是延遲0秒執(zhí)行調(diào)度,每隔1秒執(zhí)行該任務(wù),該任
務(wù)的名字是task1。
c: 繼而找到task1代表的真正的定義類,也就是圖中配置文件中的第一個bean,其中的jobClass屬性要寫
執(zhí)行任務(wù)類的完整路徑,找到這個類之后會自動調(diào)用類中重寫的那個方法,并且執(zhí)行。
這種任務(wù)的觸發(fā)方式是每隔一段時間觸發(fā),假如你想要在指定的特定時間觸發(fā),則需要這樣配置:
僅僅是把上圖中的第二個bean換成這種方式,另外需要注意的是,任務(wù)調(diào)度工廠中的任務(wù)列表
List中要加入該任務(wù)<ref bean= "cronTrigger" />。而原來被替換的simpleTrigger要注釋掉。
但博文開始就說了任務(wù)分類有兩種,這里只是繼承特定的類這一種,還有一種就是作業(yè)類就是自己而不需要繼承任何類。
這里需要解釋的是,如果每次寫作業(yè)類都需要硬性繼承某個特定的類,就好像給代碼“綁架”了一樣,還要硬性去重寫某個方法,
這個擴(kuò)展性就太差了。所以就有了第二種,不需要你繼承特定的類重寫特定的方法,而是由你自由定義,之所以做到了這一點(diǎn)是因為這部分邏輯被抽離了出來,
寫在了配置文件中。接下來就介紹這一種。
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26