Java?@Scheduled定時任務(wù)不執(zhí)行解決辦法
一、排查代碼中添加的定時任務(wù)步驟是否正確
- 啟動類上加 @EnableScheduling 注解
- 定時任務(wù)類上加@Component
- 定時方法上加@Scheduled
@Scheduled(cron = "0 19 16 * * ?")
public void cron() {
log.info("定時任務(wù)開啟:---");
}
二、排查是否任務(wù)阻塞,如果定時任務(wù)出現(xiàn)異常阻塞后,將不會在次執(zhí)行
解決:進行try…catch異常拋出
三、java中多個@Scheduled定時器不執(zhí)行
原因是:@Scheduled注解會在默認情況下以單線程的方式執(zhí)行定時任務(wù)。這個“單線程”指兩個方面:
如果一個定時任務(wù)執(zhí)行時間大于其任務(wù)間隔時間,那么下一次將會等待上一次執(zhí)行結(jié)束后再繼續(xù)執(zhí)行。
如果多個定時任務(wù)在同一時刻執(zhí)行,任務(wù)會依次執(zhí)行。
為了讓@Scheduled效率更高,我們可以通過兩種方法將定時任務(wù)變成多線程執(zhí)行:
方法1、在啟動類中配置TaskScheduler線程池大小:
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è)務(wù)邏輯
}
@Async
@Scheduled(initialDelay = 1,fixedDelay=10000)//fixedDelay 以上一次方法執(zhí)行完開始算起,如上一次方法執(zhí)行阻塞住了,那么直到上一次執(zhí)行完,并間隔給定的時間后,執(zhí)行下一次
public void bb() {
//執(zhí)行業(yè)務(wù)邏輯
}總結(jié)
到此這篇關(guān)于Java @Scheduled定時任務(wù)不執(zhí)行解決辦法的文章就介紹到這了,更多相關(guān)@Scheduled定時任務(wù)不執(zhí)行內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot實現(xiàn)多數(shù)據(jù)源的切換實踐
這篇主要介紹了SpringBoot實現(xiàn)多數(shù)據(jù)源的切換,本文基于AOP來實現(xiàn)數(shù)據(jù)源的切換,文中通過示例代碼介紹的非常詳細,感興趣的小伙伴們可以參考一下2022-03-03
Spring?代理?Bean?獲取不到原始?Bean?對象注解解決方法
這篇文章主要介紹了Spring?代理?Bean?獲取不到原始?Bean?對象注解解決方法,文章圍繞主題相關(guān)資料展開詳細介紹,需要的小伙伴可以參考一下2022-04-04
Spark學(xué)習筆記 (二)Spark2.3 HA集群的分布式安裝圖文詳解
這篇文章主要介紹了Spark2.3 HA集群的分布式安裝,結(jié)合圖文與實例形式詳細分析了Spark2.3 HA集群分布式安裝具體下載、安裝、配置、啟動及執(zhí)行spark程序等相關(guān)操作技巧,需要的朋友可以參考下2020-02-02
探究Android系統(tǒng)中解析JSON數(shù)據(jù)的方式
這篇文章主要介紹了探究Android系統(tǒng)中解析JSON數(shù)據(jù)的方式,文中講到了使用Java代碼實現(xiàn)的處理JSON的一些主要方法,需要的朋友可以參考下2015-07-07
從?PageHelper?到?MyBatis?Plugin執(zhí)行概要及實現(xiàn)原理
這篇文章主要為大家介紹了從?PageHelper?到?MyBatis?Plugin執(zhí)行概要及實現(xiàn)原理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-09-09
SpringBoot數(shù)據(jù)庫查詢超時配置詳解
這篇文章主要介紹了SpringBoot數(shù)據(jù)庫查詢超時配置,超時配置可以避免長時間占用數(shù)據(jù)庫連接,提高系統(tǒng)的響應(yīng)速度和吞吐量,還可以快速的反饋可以提升用戶體驗,避免用戶因長時間等待而感到挫敗,文中有詳細的代碼示例供大家參考,需要的朋友可以參考下2024-11-11
Java基于堆結(jié)構(gòu)實現(xiàn)優(yōu)先隊列功能示例
這篇文章主要介紹了Java基于堆結(jié)構(gòu)實現(xiàn)優(yōu)先隊列功能,結(jié)合實例形式分析了java優(yōu)先隊列的簡單定義與使用方法,需要的朋友可以參考下2017-11-11

