最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決SpringBoot中的Scheduled單線程執(zhí)行問題

 更新時(shí)間:2022年06月30日 17:16:08   作者:老司機(jī)張師傅  
在一次SpringBoot中使用Scheduled定時(shí)任務(wù)時(shí),發(fā)現(xiàn)某一個(gè)任務(wù)出現(xiàn)執(zhí)行占用大量資源,會(huì)導(dǎo)致其他任務(wù)也執(zhí)行失敗,這篇文章主要介紹了SpringBoot中的Scheduled單線程執(zhí)行問題及解決方法,需要的朋友可以參考下

問題描述

在一次SpringBoot中使用Scheduled定時(shí)任務(wù)時(shí),發(fā)現(xiàn)某一個(gè)任務(wù)出現(xiàn)執(zhí)行占用大量資源,會(huì)導(dǎo)致其他任務(wù)也執(zhí)行失敗。
類似于以下模擬場景,test1定時(shí)任務(wù)模擬有五秒鐘執(zhí)行時(shí)間,這時(shí)會(huì)同步影響到test2任務(wù)的執(zhí)行,導(dǎo)致test2任務(wù)也變成五秒執(zhí)行一次。

    @Scheduled(fixedRate = 1000)
    public void test1() throws InterruptedException {
        log.info(Thread.currentThread().getName() + " | task01 ");
        Thread.sleep(5000);
    }

    @Scheduled(fixedRate = 2000)
    public void test2() {
        log.info(Thread.currentThread().getName() + " | task02 ");
    }

原因分析:

經(jīng)過相關(guān)資料查閱,發(fā)現(xiàn)Scheduled定時(shí)任務(wù)默認(rèn)的線程數(shù)只有一個(gè),進(jìn)行定時(shí)任務(wù)調(diào)度時(shí)會(huì)同步的去調(diào)度,一個(gè)執(zhí)行完成后再執(zhí)行另一個(gè),這是導(dǎo)致該問題的直接原因。

解決方案:

    @Bean
    public TaskScheduler taskScheduler() {
        ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler();
        // 設(shè)置線程數(shù)量
        taskScheduler.setPoolSize(50);
        return taskScheduler;
    }

添加一個(gè)配置,設(shè)置TaskScheduler線程數(shù)為多個(gè),這樣再執(zhí)行時(shí)就會(huì)異步執(zhí)行了,各個(gè)定時(shí)任務(wù)間互不影響。

補(bǔ)充:

使用以下Java的util包中帶的TimerTask也可以進(jìn)行定時(shí)任務(wù)的執(zhí)行。
以下參數(shù)中TimerTask是執(zhí)行的任務(wù),0表示第一次延遲0秒執(zhí)行,3000表示每3000毫秒執(zhí)行一次。

						// true表示定時(shí)任務(wù)創(chuàng)建為守護(hù)線程
                        Timer timer = new Timer(true);
                        //timer.scheduleAtFixedRate();
                        timer.schedule(new TimerTask() {
                            @Override
                            public void run() {
                                logger.info(Thread.currentThread().getName() + "************"+ftpGaFilePrefix);
                            }
                        }, 0, 3000);

到此這篇關(guān)于SpringBoot中的Scheduled單線程執(zhí)行的文章就介紹到這了,更多相關(guān)SpringBoot Scheduled單線程內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot Redisson 集成的實(shí)現(xiàn)示例

    SpringBoot Redisson 集成的實(shí)現(xiàn)示例

    本文主要介紹了SpringBoot Redisson 集成的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-05-05
  • JAVA字符串反轉(zhuǎn)的三種方法

    JAVA字符串反轉(zhuǎn)的三種方法

    這篇文章主要介紹了JAVA字符串反轉(zhuǎn)的三種方法,幫助大家更好的理解和學(xué)習(xí)Java,感興趣的朋友可以了解下
    2020-09-09
  • Java NIO實(shí)例UDP發(fā)送接收數(shù)據(jù)代碼分享

    Java NIO實(shí)例UDP發(fā)送接收數(shù)據(jù)代碼分享

    這篇文章主要介紹了Java NIO實(shí)例UDP發(fā)送接收數(shù)據(jù)代碼分享,分享了客戶端和服務(wù)端完整代碼,小編覺得還是挺不錯(cuò)的,共需要的朋友參考。
    2017-11-11
  • 淺析Java的Spring框架中IOC容器容器的應(yīng)用

    淺析Java的Spring框架中IOC容器容器的應(yīng)用

    這篇文章主要介紹了Java的Spring框架中IOC容器容器的應(yīng)用,包括BeanFactory容器和ApplicationContext容器的介紹,需要的朋友可以參考下
    2015-12-12
  • SpringBoot連接Redis2種模式解析

    SpringBoot連接Redis2種模式解析

    這篇文章主要介紹了SpringBoot連接Redis2種模式解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Java Character類對(duì)單個(gè)字符操作原理解析

    Java Character類對(duì)單個(gè)字符操作原理解析

    這篇文章主要介紹了Java Character類對(duì)單個(gè)字符操作原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • SpringMVC上傳文件并保存到本地代碼實(shí)例

    SpringMVC上傳文件并保存到本地代碼實(shí)例

    這篇文章主要介紹了SpringMVC上傳文件并保存到本地代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • 聊聊@RequestBody和Json之間的關(guān)系

    聊聊@RequestBody和Json之間的關(guān)系

    這篇文章主要介紹了@RequestBody和Json之間的關(guān)系,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • java中文分詞之正向最大匹配法實(shí)例代碼

    java中文分詞之正向最大匹配法實(shí)例代碼

    中文分詞應(yīng)用很廣泛,網(wǎng)上也有很多開源項(xiàng)目,下面這篇文章主要給大家介紹了關(guān)于java中文分詞之正向最大匹配法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-11-11
  • MyBatis動(dòng)態(tài)SQL foreach標(biāo)簽實(shí)現(xiàn)批量插入的方法示例

    MyBatis動(dòng)態(tài)SQL foreach標(biāo)簽實(shí)現(xiàn)批量插入的方法示例

    這篇文章主要介紹了MyBatis動(dòng)態(tài)SQL foreach標(biāo)簽實(shí)現(xiàn)批量插入的方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06

最新評(píng)論

诸暨市| 江川县| 邵阳县| 扬中市| 江山市| 泰安市| 扶绥县| 金阳县| 南昌市| 汽车| 台湾省| 信宜市| 邛崃市| 奈曼旗| 怀化市| 大田县| 东港市| 中牟县| 五台县| 依安县| 绥德县| 原平市| 分宜县| 阳东县| 宁夏| 馆陶县| 长宁区| 绵阳市| 南部县| 石林| 香河县| 彩票| 古田县| 泽州县| 泰宁县| 新余市| 巴马| 丁青县| 崇左市| 金昌市| 舒城县|