欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決多個(gè)@Scheduled定時(shí)任務(wù)執(zhí)行時(shí)個(gè)別不執(zhí)行問題

 更新時(shí)間:2024年08月02日 15:19:03   作者:在代碼的路上奔跑  
這篇文章主要介紹了解決多個(gè)@Scheduled定時(shí)任務(wù)執(zhí)行時(shí)個(gè)別不執(zhí)行問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

多個(gè)@Scheduled定時(shí)任務(wù)執(zhí)行時(shí)個(gè)別不執(zhí)行

原因

項(xiàng)目在啟動(dòng)時(shí),如果沒有指定線程池的大小,默認(rèn)會(huì)創(chuàng)建核心線程數(shù)為1的默認(rèn)線程池,故而當(dāng)項(xiàng)目中出現(xiàn)多個(gè)@Scheduled線程時(shí),只能一個(gè)個(gè)的執(zhí)行,從而導(dǎo)致個(gè)別線程執(zhí)行時(shí)間過長(或長期執(zhí)行)時(shí),其他定時(shí)器不能按照指定的規(guī)則進(jìn)行執(zhí)行。

解決辦法

1、配置執(zhí)行線程池的大小

spring.task.scheduling.pool.size=10

2.將定時(shí)器設(shè)置為異步線程

/**
異步線程
定時(shí)器延遲1秒啟動(dòng),每距上一次執(zhí)行完成后間隔3秒執(zhí)行一次
*/
@Async(“taskExecutor”)
@Scheduled(initialDelay = 1000L, fixedDelay = 3000L)
public void test(){System.out.println(“—”+System.currentTimeMillis());//業(yè)務(wù)內(nèi)容
}

@Scheduled多定時(shí)任務(wù),重疊執(zhí)行

@Scheduled如果有兩個(gè)定時(shí)任務(wù),定時(shí)任務(wù)重復(fù)時(shí),只有一個(gè)可以執(zhí)行。如下

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
 
import java.time.LocalDateTime;
 
@Component
public class MyScheduled {
 
    @Scheduled(cron = "0/5 * * * * ?")
    public void execute1(){
        String curName = Thread.currentThread().getName() ;
        System.out.println("當(dāng)前時(shí)間:"+LocalDateTime.now()+"  任務(wù)execute1對應(yīng)的線程名: "+curName);
        try {
            Thread.sleep(1000);
        } catch (Exception e) {
            e.printStackTrace();
        }
 
    }
 
    @Scheduled(cron = "0/5 * * * * ?")
    public void execute2(){
 
        String curName = Thread.currentThread().getName() ;
        System.out.println("當(dāng)前時(shí)間:"+LocalDateTime.now()+"  任務(wù)execute2對應(yīng)的線程名: "+curName);
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

通過執(zhí)行可以看到,打印線程名稱為同一個(gè)。即如果不手動(dòng)指定線程池,則默認(rèn)啟動(dòng)單線程,進(jìn)行執(zhí)行定時(shí)任務(wù)。

如果想要多個(gè)定時(shí)任務(wù)重疊執(zhí)行,需要手動(dòng)指定線程池,如下

import org.springframework.context.annotation.Bean;
import org.springframework.scheduling.TaskScheduler;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
import org.springframework.stereotype.Component;
 
import java.time.LocalDateTime;
 
@Component
@EnableScheduling
public class MyScheduled {
 
    @Bean
    public TaskScheduler taskScheduler() {
        ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler();
        taskScheduler.setPoolSize(50);
        return taskScheduler;
    }
 
    @Scheduled(cron = "0/5 * * * * ?")
    public void execute1(){
        String curName = Thread.currentThread().getName() ;
        System.out.println("當(dāng)前時(shí)間:"+LocalDateTime.now()+"  任務(wù)execute1對應(yīng)的線程名: "+curName);
        try {
            Thread.sleep(1000);
        } catch (Exception e) {
            e.printStackTrace();
        }
 
    }
 
    @Scheduled(cron = "0/5 * * * * ?")
    public void execute2(){
 
        String curName = Thread.currentThread().getName() ;
        System.out.println("當(dāng)前時(shí)間:"+LocalDateTime.now()+"  任務(wù)execute2對應(yīng)的線程名: "+curName);
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

此時(shí),多個(gè)定時(shí)任務(wù),是不通的線程執(zhí)行,同時(shí),定時(shí)任務(wù)可以重疊執(zhí)行。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 在Python中生成二維碼的詳細(xì)步驟

    在Python中生成二維碼的詳細(xì)步驟

    二維碼(QR Code)作為一種快速響應(yīng)碼,因其高效的信息存儲(chǔ)和便捷的掃描方式,在現(xiàn)代生活中得到了廣泛應(yīng)用,Python作為一門功能強(qiáng)大的編程語言,通過其豐富的第三方庫,可以輕松實(shí)現(xiàn)二維碼的生成,本文詳細(xì)介紹在Python中生成二維碼的詳細(xì)步驟和用法
    2024-09-09
  • python中SQLAlchemy使用前端頁面實(shí)現(xiàn)插入數(shù)據(jù)

    python中SQLAlchemy使用前端頁面實(shí)現(xiàn)插入數(shù)據(jù)

    這篇文章主要介紹了SQLAlchemy使用前端頁面實(shí)現(xiàn)插入數(shù)據(jù),文章內(nèi)容介紹詳細(xì)巨頭有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-03-03
  • 使用python客戶端訪問impala的操作方式

    使用python客戶端訪問impala的操作方式

    這篇文章主要介紹了使用python客戶端訪問impala的操作方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • 淺析Python中接口與抽象基類的使用

    淺析Python中接口與抽象基類的使用

    這篇文章主要為大家詳細(xì)介紹了Python中兩個(gè)為面向?qū)ο缶幊烫峁┑膹?qiáng)大工具接口和抽象基類的使用,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-12-12
  • Selenium 安裝和簡單使用的實(shí)現(xiàn)

    Selenium 安裝和簡單使用的實(shí)現(xiàn)

    這篇文章主要介紹了Selenium 安裝和簡單使用的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • python3 使用ssh隧道連接mysql的操作

    python3 使用ssh隧道連接mysql的操作

    這篇文章主要介紹了python3 使用ssh隧道連接mysql的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • python3自動(dòng)更新緩存類的具體使用

    python3自動(dòng)更新緩存類的具體使用

    本文介紹了使用一個(gè)自動(dòng)更新緩存的Python類AutoUpdatingCache,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • 解決python刪除文件的權(quán)限錯(cuò)誤問題

    解決python刪除文件的權(quán)限錯(cuò)誤問題

    下面小編就為大家分享一篇解決python刪除文件的權(quán)限錯(cuò)誤問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Python Flask異步發(fā)送郵件實(shí)現(xiàn)方法解析

    Python Flask異步發(fā)送郵件實(shí)現(xiàn)方法解析

    這篇文章主要介紹了Python Flask異步發(fā)送郵件實(shí)現(xiàn)方法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • 對網(wǎng)站內(nèi)嵌gradio應(yīng)用的輸入輸出做審核實(shí)現(xiàn)詳解

    對網(wǎng)站內(nèi)嵌gradio應(yīng)用的輸入輸出做審核實(shí)現(xiàn)詳解

    這篇文章主要為大家介紹了對網(wǎng)站內(nèi)嵌gradio應(yīng)用的輸入輸出做審核實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04

最新評論