spring定時(shí)器定時(shí)任務(wù)到時(shí)間未執(zhí)行問題的解決
spring定時(shí)器定時(shí)任務(wù)到時(shí)間未執(zhí)行
應(yīng)用場景
一個(gè)定時(shí)器類中有n個(gè)定時(shí)任務(wù),有每30秒執(zhí)行一次的還有每1分鐘執(zhí)行一次的,出現(xiàn)問題的定時(shí)任務(wù)是0點(diǎn)整時(shí)執(zhí)行的定時(shí)任務(wù)到了0點(diǎn)沒有執(zhí)行。
原因分析
spring定時(shí)器任務(wù)scheduled-tasks默認(rèn)配置是單線程串行執(zhí)行的,當(dāng)某個(gè)定時(shí)任務(wù)出現(xiàn)阻塞,或者執(zhí)行時(shí)間過長,則線程就會被占用,其他定時(shí)任務(wù)排隊(duì)執(zhí)行,導(dǎo)致后面的定時(shí)任務(wù)未能準(zhǔn)時(shí)執(zhí)行。
解決方式
開啟多線程定時(shí)任務(wù)執(zhí)行
/**
* 多線程執(zhí)行定時(shí)任務(wù)
*/
@Configurable
public class ScheduleConfig implements SchedulingConfigurer {
private static final int FIVE = 5;
@Override
public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) {
scheduledTaskRegistrar.setScheduler(Executors.newScheduledThreadPool(FIVE));
}
}
解決修改系統(tǒng)時(shí)間后Spring 定時(shí)任務(wù)不執(zhí)行
問題描述
Spring 定時(shí)任務(wù)不執(zhí)行
事情起因是這樣的,我們有一個(gè)spring定時(shí)任務(wù),每隔半小時(shí)要執(zhí)行一次。
起因
由于種種原因,昨晚上這臺服務(wù)器被關(guān)機(jī)了,今早【重啟服務(wù)器】和【啟動(dòng)定時(shí)任務(wù)服務(wù)】。
機(jī)器重啟后,發(fā)現(xiàn)服務(wù)器機(jī)器系統(tǒng)時(shí)間和實(shí)際北京時(shí)間不一致,相差10個(gè)小時(shí)。
于是乎,我使用date -s 10:35:35 設(shè)置和北京時(shí)間保持一致。
錯(cuò)誤
本以為這樣,時(shí)間已經(jīng)一致了,定時(shí)任務(wù)應(yīng)該能正常執(zhí)行了!
等了好幾個(gè)小時(shí),定時(shí)任務(wù)依然沒有執(zhí)行。
于是查看系統(tǒng)日志,系統(tǒng)日志一切正常,只是沒有定時(shí)任務(wù)執(zhí)行的log日志。
解決問題
奇了個(gè)怪,服務(wù)正常啟動(dòng),但定時(shí)任務(wù)沒有執(zhí)行。
然而昨天還在跑的服務(wù),就因?yàn)橐淮侮P(guān)機(jī),就over了?
不可能,于是關(guān)掉應(yīng)用服務(wù)再次重啟。
定時(shí)任務(wù)執(zhí)行成功了,于是得出結(jié)論: 服務(wù)器系統(tǒng)時(shí)間改變后,Spring 定時(shí)任務(wù)將失效。
服務(wù)器系統(tǒng)時(shí)間改變后,Spring 定時(shí)任務(wù)將失效,解決方法就是:重啟應(yīng)用服務(wù)。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
java+MongoDB實(shí)現(xiàn)存圖片、下載圖片的方法示例
這篇文章主要介紹了java+MongoDB實(shí)現(xiàn)存圖片、下載圖片的方法,結(jié)合實(shí)例形式詳細(xì)分析了java結(jié)合MongoDB實(shí)現(xiàn)圖片的存儲與下載相關(guān)操作技巧,需要的朋友可以參考下2019-09-09
java swing中實(shí)現(xiàn)拖拽功能示例
這篇文章主要介紹了java swing中實(shí)現(xiàn)拖拽功能示例,需要的朋友可以參考下2014-04-04
Docker 解決openjdk容器里無法使用JDK的jmap等命令問題
這篇文章主要介紹了Docker 解決openjdk容器里無法使用JDK的jmap等命令問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-12-12
Java 中利用泛型和反射機(jī)制抽象DAO的實(shí)例
這篇文章主要介紹了Java 中利用泛型和反射機(jī)制抽象DAO的實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-07-07
Spring Security自定義認(rèn)證器的實(shí)現(xiàn)代碼
這篇文章主要介紹了Spring Security自定義認(rèn)證器的實(shí)現(xiàn)代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06
springboot開發(fā)擴(kuò)展springmvc實(shí)現(xiàn)解析
這篇文章主要介紹了springboot開發(fā)擴(kuò)展springmvc實(shí)現(xiàn)解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02

