Java?@Scheduled定時任務不執(zhí)行解決辦法
一、排查代碼中添加的定時任務步驟是否正確
- 啟動類上加 @EnableScheduling 注解
- 定時任務類上加@Component
- 定時方法上加@Scheduled
@Scheduled(cron = "0 19 16 * * ?") public void cron() { log.info("定時任務開啟:---"); }
二、排查是否任務阻塞,如果定時任務出現(xiàn)異常阻塞后,將不會在次執(zhí)行
解決:進行try…catch異常拋出
三、java中多個@Scheduled定時器不執(zhí)行
原因是:@Scheduled注解會在默認情況下以單線程的方式執(zhí)行定時任務。這個“單線程”指兩個方面:
如果一個定時任務執(zhí)行時間大于其任務間隔時間,那么下一次將會等待上一次執(zhí)行結(jié)束后再繼續(xù)執(zhí)行。
如果多個定時任務在同一時刻執(zhí)行,任務會依次執(zhí)行。
為了讓@Scheduled效率更高,我們可以通過兩種方法將定時任務變成多線程執(zhí)行:
方法1、在啟動類中配置TaskScheduler線程池大?。?/strong>
public TaskScheduler taskScheduler() { ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler(); taskScheduler.setPoolSize(10);//不配置默認是1 return taskScheduler; }
方法2、利用Spring提供的@Async注解和@EnableAsync注解
@Component @EnableAsync //開啟異步支持 public class TimedTask{ @Async // 對某個方法進行異步執(zhí)行 @Scheduled(initialDelay = 1,fixedDelay=10000)//initialDelay 在容器啟動后,延遲1毫秒再執(zhí)行一次定時器 public void aa() { //執(zhí)行業(yè)務邏輯 } @Async @Scheduled(initialDelay = 1,fixedDelay=10000)//fixedDelay 以上一次方法執(zhí)行完開始算起,如上一次方法執(zhí)行阻塞住了,那么直到上一次執(zhí)行完,并間隔給定的時間后,執(zhí)行下一次 public void bb() { //執(zhí)行業(yè)務邏輯 }
總結(jié)
到此這篇關于Java @Scheduled定時任務不執(zhí)行解決辦法的文章就介紹到這了,更多相關@Scheduled定時任務不執(zhí)行內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
SpringBoot使用Caffeine實現(xiàn)緩存的示例代碼
本文主要介紹了SpringBoot使用Caffeine實現(xiàn)緩存的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-07-07SpringBoot項目中Druid自動登錄功能實現(xiàn)
Druid是Java語言中最好的數(shù)據(jù)庫連接池,Druid能夠提供強大的監(jiān)控和擴展功能,這篇文章主要介紹了SpringBoot項目中Druid自動登錄功能實現(xiàn),需要的朋友可以參考下2024-08-08spring boot 實現(xiàn)Minio分片上傳的步驟
分片上傳,就是將所要上傳的文件,按照一定的大小,將整個文件分隔成多個數(shù)據(jù)塊來進行分別上傳,上傳完之后再由服務端對所有上傳的文件進行匯總整合成原始的文件,本文給大家介紹spring boot 實現(xiàn)Minio分片上傳的步驟,感興趣的朋友跟隨小編一起看看吧2023-10-10spring boot實現(xiàn)自動輸出word文檔功能的實例代碼
這篇文章主要介紹了spring boot實現(xiàn)自動輸出word文檔功能的實例代碼,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-04-04java使用JDBC連接數(shù)據(jù)庫的五種方式(IDEA版)
這篇文章主要介紹了java使用JDBC連接數(shù)據(jù)庫的五種方式(IDEA版),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-04-04SpringBoot使用JWT實現(xiàn)登錄驗證的方法示例
這篇文章主要介紹了SpringBoot使用JWT實現(xiàn)登錄驗證的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-06-06