springboot定時(shí)任務(wù)不起作用問題及解決
springboot定時(shí)任務(wù)不起作用
今天再寫一個(gè)定時(shí)任務(wù)時(shí),發(fā)現(xiàn)所有配置都沒問題,但定時(shí)任務(wù)就是不執(zhí)行,通過各種對(duì)比測(cè)試排除法,終于找到問題所在。
下面看一下啟動(dòng)類
@SpringBootApplication @ComponentScan(value = "com.timer.timer_demo",lazyInit = true) @EnableScheduling public class TimerDemoApplication { public static void main(String[] args) { SpringApplication.run(TimerDemoApplication.class, args); } }
啟動(dòng)類上有三個(gè)注解
其中有個(gè)注解是有個(gè)lazyInit屬性,是何意思呢?
ApplicationContext實(shí)現(xiàn)的默認(rèn)行為就是在啟動(dòng)服務(wù)器時(shí)將所有singleton bean提前進(jìn)行實(shí)例化(也就是依賴注入)。
提前實(shí)例化意味著作為初始化過程的一部分,applicationContext實(shí)例會(huì)創(chuàng)建并配置所有的singleton bean。
通常情況下這是一件好事,因?yàn)檫@樣在配置中的任何錯(cuò)誤就會(huì)被立刻實(shí)現(xiàn)。
延時(shí)加載,設(shè)置為lazy = true 的bean將不會(huì)在ApplicationContext啟動(dòng)時(shí)提前被實(shí)例化,而是第一次向容器通過getBean索取bean時(shí)實(shí)例化的。
這段解釋也就是說:
這個(gè)屬性為true時(shí),bean類將延遲加載,那樣的話定時(shí)任務(wù)類沒在啟動(dòng)時(shí)加載進(jìn)去,自然就沒法執(zhí)行定時(shí)任務(wù),此時(shí)怎么解決?
總不能把之前啟動(dòng)類的這個(gè)屬性去掉吧,在啟動(dòng)類上添加這個(gè)得前輩大神肯定有自己考慮,不動(dòng)為妙,那就指定某些類不使用延遲加載。
代碼如下:
@Component @Lazy(false) public class MyTimerTest { //表示每隔1秒 @Scheduled(fixedRate=1000) public void clearData(){ System.out.println("定時(shí)任務(wù)"+System.currentTimeMillis()); } }
想讓哪個(gè)類不延遲加載就添加@Lazy(false) 注解即可
好了,springboot的延遲加載坑就解決了
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- SpringBoot項(xiàng)目使用@Scheduled注解實(shí)現(xiàn)定時(shí)任務(wù)的方法
- SpringBoot整合ShedLock解決定時(shí)任務(wù)防止重復(fù)執(zhí)行的問題
- SpringBoot項(xiàng)目如何使用多線程執(zhí)行定時(shí)任務(wù)
- SpringBoot最新定時(shí)任務(wù)的7種實(shí)現(xiàn)方案
- SpringBoot集成ShedLock實(shí)現(xiàn)分布式定時(shí)任務(wù)的示例代碼
- 基于SpringBoot實(shí)現(xiàn)輕量級(jí)的動(dòng)態(tài)定時(shí)任務(wù)調(diào)度的方法
- SpringBoot最簡(jiǎn)單的定時(shí)任務(wù)@Scheduler的使用及解讀
相關(guān)文章
SpringMVC對(duì)日期類型的轉(zhuǎn)換示例
本篇文章主要介紹了SpringMVC對(duì)日期類型的轉(zhuǎn)換示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02java的url方式、本地方式獲取json文件內(nèi)容
這篇文章給大家分享了java的url方式、本地方式獲取json文件內(nèi)容的實(shí)例代碼,有需要的朋友參考學(xué)習(xí)下。2018-07-07springboot啟動(dòng)報(bào)錯(cuò):application?startup?failed問題
這篇文章主要介紹了springboot啟動(dòng)報(bào)錯(cuò):application?startup?failed問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07SpringBoot Security安裝配置及Thymeleaf整合
這篇文章主要介紹了SpringBoot Security安裝配置及Thymeleaf整合,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-12-12javaweb項(xiàng)目如何實(shí)現(xiàn)手機(jī)短信登錄
這篇文章主要介紹了javaweb項(xiàng)目如何實(shí)現(xiàn)手機(jī)短信登錄,手機(jī)號(hào)登錄在現(xiàn)在的項(xiàng)目中用的場(chǎng)景非常多,實(shí)現(xiàn)起來也不難,今天我們就一起來通過演示實(shí)現(xiàn)登錄過程,需要的朋友可以參考下2019-07-07java實(shí)現(xiàn)后臺(tái)數(shù)據(jù)顯示在前端
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)后臺(tái)數(shù)據(jù)顯示在前端,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-02-02單例模式垃圾回收_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要為大家詳細(xì)介紹了單例模式垃圾回收的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08