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

SpringBoot Test 多線程報錯的根本原因(dataSource already closed)

 更新時間:2022年06月18日 08:48:59   作者:、楽.  
在使用Springboot test進行相關(guān)測試的時候,發(fā)現(xiàn)開啟線程操作數(shù)據(jù)庫的時候異常,這篇文章主要介紹了SpringBoot Test 多線程報錯:dataSource already closed的根本原因及解決方法,需要的朋友可以參考下

背景

使用Springboot test進行相關(guān)測試的時候,發(fā)現(xiàn)開啟線程操作數(shù)據(jù)庫的時候異常。

排查方法

將線程移除,采用并行的方式,操作數(shù)據(jù)庫正常。

根本原因

  • SpringBoot Test 主線程退出,導(dǎo)致Spring 容器關(guān)閉。
  • Spring容器關(guān)閉,導(dǎo)致DruidDataSource 關(guān)閉
  • 此時用戶線程去訪問已關(guān)閉的數(shù)據(jù)源,導(dǎo)致報錯。

解決方法

提供一個全局的線程池,然后使用線程池開啟線程操作,然后添加監(jiān)聽器,監(jiān)聽線程池里面是否有未完成的任務(wù),如果有則不關(guān)閉容器。

@Component
public class EventListener implements ApplicationListener<ApplicationEvent> {

    @Override
    public void onApplicationEvent(ApplicationEvent event) {
        if (event instanceof ContextClosedEvent) {
            LoggerClient.info("容器即將關(guān)閉");
            //線程池工具類
            ThreadPoolUtil threadPoolUtil = new ThreadPoolUtil();
            while (threadPoolUtil.getExecutor().isTerminated()) {
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}
?public class ThreadPoolUtil {
    private static final ExecutorService executor = Executors.newFixedThreadPool(20);
    public ThreadPoolUtil() {
    }
    public ExecutorService getExecutor() {
        return executor;
    }
    public static void submitRunnable(Runnable runnable) {
        executor.submit(runnable);
    }
    public static <V> Future submitCallable(Callable<V> callable) {
        Future<V> submit = executor.submit(callable);
        return submit;
    }
}

到此這篇關(guān)于SpringBoot Test 多線程報錯:dataSource already closed的文章就介紹到這了,更多相關(guān)SpringBoot Test 多線程報錯內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java基礎(chǔ)高級綜合練習(xí)題撲克牌的創(chuàng)建

    Java基礎(chǔ)高級綜合練習(xí)題撲克牌的創(chuàng)建

    今天小編就為大家分享一篇關(guān)于Java基礎(chǔ)高級綜合練習(xí)題撲克牌的創(chuàng)建,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • Java實現(xiàn)按鍵精靈的示例代碼

    Java實現(xiàn)按鍵精靈的示例代碼

    這篇文章主要為大家詳細介紹了如何利用Java語言實現(xiàn)按鍵精靈,文中的示例代碼講解詳細,對我們學(xué)習(xí)或工作有一定的參考價值,感興趣的可以學(xué)習(xí)一下
    2022-05-05
  • RestTemplate自定義ErrorHandler方式

    RestTemplate自定義ErrorHandler方式

    這篇文章主要介紹了RestTemplate自定義ErrorHandler方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Mybatis如何動態(tài)創(chuàng)建表

    Mybatis如何動態(tài)創(chuàng)建表

    這篇文章主要介紹了Mybatis如何動態(tài)創(chuàng)建表問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • Java實現(xiàn)幾十萬條數(shù)據(jù)插入實例教程(30萬條數(shù)據(jù)插入MySQL僅需13秒)

    Java實現(xiàn)幾十萬條數(shù)據(jù)插入實例教程(30萬條數(shù)據(jù)插入MySQL僅需13秒)

    這篇文章主要給大家介紹了關(guān)于Java如何實現(xiàn)幾十萬條數(shù)據(jù)插入的相關(guān)資料,30萬條數(shù)據(jù)插入MySQL僅需13秒,文中通過實例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2023-04-04
  • spring boot2.0實現(xiàn)優(yōu)雅停機的方法

    spring boot2.0實現(xiàn)優(yōu)雅停機的方法

    這篇文章主要介紹了spring boot2.0實現(xiàn)優(yōu)雅停機的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • Java 數(shù)據(jù)庫連接池c3p0 介紹

    Java 數(shù)據(jù)庫連接池c3p0 介紹

    這篇文章主要介給大家分享了 Java 數(shù)據(jù)庫連接池c3p0 介紹,c3p0 是一個成熟的、高并發(fā)的 JDBC 連接池庫,支持緩存和 PreparedStatements 的重用。它以LGPL v.2.1或EPL v.1.0授權(quán),下面我們就一起來看看文章內(nèi)容的詳細介紹吧,需要的朋友也可以參考一下
    2021-11-11
  • Mybatis-plus3.4.3下使用lambdaQuery報錯解決

    Mybatis-plus3.4.3下使用lambdaQuery報錯解決

    最近在使用lambdaQuery().eq(CommonUser::getOpenId, openId).one()進行查詢報錯,本文主要介紹了Mybatis-plus3.4.3下使用lambdaQuery報錯解決,具有一定的參考價值,感興趣的可以了解一下
    2024-07-07
  • Tomcat正常啟動,訪問所有頁面均報404異常,404異常總結(jié)分析

    Tomcat正常啟動,訪問所有頁面均報404異常,404異??偨Y(jié)分析

    今天遇到一個問題:Tomcat正常啟動,訪問所有頁面均報404異常,究竟該如何解決這個問題呢?下邊小編將為大家介紹一下解決方法,需要的朋友可以參考下
    2013-07-07
  • Java時間輪調(diào)度算法的代碼實現(xiàn)

    Java時間輪調(diào)度算法的代碼實現(xiàn)

    時間輪是一種高效的定時調(diào)度算法,主要用于管理延時任務(wù)或周期性任務(wù),它通過一個環(huán)形數(shù)組(時間輪)和指針來實現(xiàn),將大量定時任務(wù)分攤到固定的時間槽中,極大地降低了時間復(fù)雜度和資源開銷,本文給大家介紹了Java時間輪調(diào)度算法的代碼實現(xiàn),需要的朋友可以參考下
    2025-03-03

最新評論

平武县| 淮阳县| 文成县| 灵寿县| 运城市| 东辽县| 惠水县| 盱眙县| 科技| 治多县| 华阴市| 山丹县| 大埔县| 九江县| 西丰县| 萨嘎县| 肇庆市| 宝坻区| 通城县| 兴城市| 博湖县| 盘锦市| 云龙县| 出国| 上饶县| 三原县| 江山市| 青河县| 吉林省| 吉安县| 元谋县| 清徐县| 余姚市| 长岛县| 民乐县| 青阳县| 石泉县| 隆德县| 嵩明县| 桃园市| 同德县|