Springboot定時(shí)任務(wù) spring定時(shí)器配置兩個(gè)定時(shí)任務(wù),怎么讓這兩個(gè)任務(wù)按順序執(zhí)行,有代碼最好?
spring定時(shí)器配置兩個(gè)定時(shí)任務(wù),怎么讓這兩個(gè)任務(wù)按順序執(zhí)行,有代碼最好?幫你找了一下 沒(méi)有找到 前置任務(wù) 后置任務(wù)之類(lèi)的不過(guò)可以手動(dòng)實(shí)現(xiàn),執(zhí)行任務(wù)的時(shí)候第一個(gè)任務(wù)類(lèi)定一個(gè)全局變量 值為0第二個(gè)任務(wù)
spring定時(shí)器配置兩個(gè)定時(shí)任務(wù),怎么讓這兩個(gè)任務(wù)按順序執(zhí)行,有代碼最好?
幫你找了一下 沒(méi)有找到 前置任務(wù) 后置任務(wù)之類(lèi)的
不過(guò)可以手動(dòng)實(shí)現(xiàn),執(zhí)行任務(wù)的時(shí)候
第一個(gè)任務(wù)類(lèi)定一個(gè)全局變量 值為0
第二個(gè)任務(wù)定義一個(gè)變量為1
然后第二個(gè)任務(wù)執(zhí)行的時(shí)候判斷是否大于第一個(gè) 大于就執(zhí)行
當(dāng)然第一個(gè)任務(wù)執(zhí)行過(guò)后這個(gè)變量要相加
如何在spring中配置定時(shí)任務(wù)?
定時(shí)任務(wù)的實(shí)現(xiàn)方式有多種,例如JDK自帶的Timer TimerTask方式,Spring3.0以后的調(diào)度任務(wù)(ScheduledTask),Quartz等。
Timer TimerTask是最基本的解決方案,但是比較遠(yuǎn)古了,這里不再討論。Spring自帶的Scheduled
Task是一個(gè)輕量級(jí)的定時(shí)任務(wù)調(diào)度器,支持固定時(shí)間(支持cron表達(dá)式)和固定時(shí)間間隔調(diào)度任務(wù),支持線(xiàn)程池管理。以上兩種方式有一個(gè)共同的缺點(diǎn),那就是應(yīng)用服務(wù)器集群下會(huì)出現(xiàn)任務(wù)多次被調(diào)度執(zhí)行的情況,因?yàn)榧旱墓?jié)點(diǎn)之間是不會(huì)共享任務(wù)信息的,每個(gè)節(jié)點(diǎn)上的任務(wù)都會(huì)按時(shí)執(zhí)行。Quartz是一個(gè)功能完善的任務(wù)調(diào)度框架,特別牛叉的是它支持集群環(huán)境下的任務(wù)調(diào)度,當(dāng)然代價(jià)也很大,需要將任務(wù)調(diào)度狀態(tài)序列化到數(shù)據(jù)庫(kù)。Quartz框架需要10多張表協(xié)同,配置繁多,令人望而卻步...
經(jīng)過(guò)折中考慮,還是選擇了Spring的ScheduledTask來(lái)實(shí)現(xiàn)定時(shí)任務(wù)。如下:
1.Spring配置文件application-context.xml中添加task命名空間和描述。
[html]viewplaincopy