日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

SpringBoot利用ThreadPoolTaskExecutor批量插入百萬級數(shù)據(jù)實(shí)測!

jf_ro2CN3Fa ? 來源:CSDN ? 作者:CSDN ? 2022-11-16 10:38 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群


前言

  • 開發(fā)目的: 提高百萬級數(shù)據(jù)插入效率。
  • 采取方案: 利用ThreadPoolTaskExecutor多線程批量插入。
  • 采用技術(shù): springboot2.1.1+mybatisPlus3.0.6+swagger2.5.0+Lombok1.18.4+postgresql+ThreadPoolTaskExecutor等。

基于 Spring Boot + MyBatis Plus + Vue & Element 實(shí)現(xiàn)的后臺管理系統(tǒng) + 用戶小程序,支持 RBAC 動(dòng)態(tài)權(quán)限、多租戶、數(shù)據(jù)權(quán)限、工作流、三方登錄、支付、短信、商城等功能

  • 項(xiàng)目地址:https://gitee.com/zhijiantianya/ruoyi-vue-pro
  • 視頻教程:https://doc.iocoder.cn/video/

具體實(shí)現(xiàn)細(xì)節(jié)

application-dev.properties添加線程池配置信息

> 基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 實(shí)現(xiàn)的后臺管理系統(tǒng) + 用戶小程序,支持 RBAC 動(dòng)態(tài)權(quán)限、多租戶、數(shù)據(jù)權(quán)限、工作流、三方登錄、支付、短信、商城等功能
>
> * 項(xiàng)目地址:
> * 視頻教程:

# 異步線程配置
# 配置核心線程數(shù)
async.executor.thread.core_pool_size = 30
# 配置最大線程數(shù)
async.executor.thread.max_pool_size = 30
# 配置隊(duì)列大小
async.executor.thread.queue_capacity = 99988
# 配置線程池中的線程的名稱前綴
async.executor.thread.name.prefix = async-importDB-

spring容器注入線程池bean對象

@Configuration

@EnableAsync

@Slf4j

publicclassExecutorConfig{
@Value("${async.executor.thread.core_pool_size}")
privateintcorePoolSize;
@Value("${async.executor.thread.max_pool_size}")
privateintmaxPoolSize;
@Value("${async.executor.thread.queue_capacity}")
privateintqueueCapacity;
@Value("${async.executor.thread.name.prefix}")
privateStringnamePrefix;

@Bean(name="asyncServiceExecutor")
publicExecutorasyncServiceExecutor(){
log.warn("startasyncServiceExecutor");
//在這里修改
ThreadPoolTaskExecutorexecutor=newVisiableThreadPoolTaskExecutor();
//配置核心線程數(shù)
executor.setCorePoolSize(corePoolSize);
//配置最大線程數(shù)
executor.setMaxPoolSize(maxPoolSize);
//配置隊(duì)列大小
executor.setQueueCapacity(queueCapacity);
//配置線程池中的線程的名稱前綴
executor.setThreadNamePrefix(namePrefix);
// rejection-policy:當(dāng)pool已經(jīng)達(dá)到max size的時(shí)候,如何處理新任務(wù)
// CALLER_RUNS:不在新線程中執(zhí)行任務(wù),而是有調(diào)用者所在的線程來執(zhí)行
executor.setRejectedExecutionHandler(newThreadPoolExecutor.CallerRunsPolicy());
//執(zhí)行初始化
executor.initialize();
returnexecutor;
}
}

創(chuàng)建異步線程 業(yè)務(wù)類

@Service
@Slf4j
publicclassAsyncServiceImplimplementsAsyncService{
@Override
@Async("asyncServiceExecutor")
publicvoidexecuteAsync(ListlogOutputResults,LogOutputResultMapperlogOutputResultMapper,CountDownLatchcountDownLatch){
try{
log.warn("startexecuteAsync");
//異步線程要做的事情
logOutputResultMapper.addLogOutputResultBatch(logOutputResults);
log.warn("endexecuteAsync");
}finally{
countDownLatch.countDown();//很關(guān)鍵,無論上面程序是否異常必須執(zhí)行countDown,否則await無法釋放
}
}
}

創(chuàng)建多線程批量插入具體業(yè)務(wù)方法

@Override
publicinttestMultiThread(){
ListlogOutputResults=getTestData();
//測試每100條數(shù)據(jù)插入開一個(gè)線程
List>lists=ConvertHandler.splitList(logOutputResults,100);
CountDownLatchcountDownLatch=newCountDownLatch(lists.size());
for(ListlistSub:lists){
asyncService.executeAsync(listSub,logOutputResultMapper,countDownLatch);
}
try{
countDownLatch.await();//保證之前的所有的線程都執(zhí)行完成,才會走下面的;
//這樣就可以在下面拿到所有線程執(zhí)行完的集合結(jié)果
}catch(Exceptione){
log.error("阻塞異常:"+e.getMessage());
}
returnlogOutputResults.size();
}

模擬2000003 條數(shù)據(jù)進(jìn)行測試

4fc16cce-6555-11ed-8abf-dac502259ad0.png

多線程 測試 2000003 耗時(shí)如下:耗時(shí)1.67分鐘

4fe0a918-6555-11ed-8abf-dac502259ad0.png4fe8a71c-6555-11ed-8abf-dac502259ad0.png

本次開啟30個(gè)線程,截圖如下:

5003382a-6555-11ed-8abf-dac502259ad0.png

單線程測試2000003 耗時(shí)如下:耗時(shí)5.75分鐘

502a55e0-6555-11ed-8abf-dac502259ad0.png504a0548-6555-11ed-8abf-dac502259ad0.png

檢查多線程入庫的數(shù)據(jù),檢查是否存在重復(fù)入庫的問題:

根據(jù)id分組,查看是否有id重復(fù)的數(shù)據(jù),通過sql語句檢查,沒有發(fā)現(xiàn)重復(fù)入庫的問題

506e5010-6555-11ed-8abf-dac502259ad0.png

檢查數(shù)據(jù)完整性:通過sql語句查詢,多線程錄入數(shù)據(jù)完整

50798f48-6555-11ed-8abf-dac502259ad0.png

測試結(jié)果

不同線程數(shù)測試:

508bc816-6555-11ed-8abf-dac502259ad0.png50969b9c-6555-11ed-8abf-dac502259ad0.png

總結(jié)

通過以上測試案列,同樣是導(dǎo)入2000003 條數(shù)據(jù),多線程耗時(shí)1.67分鐘,單線程耗時(shí)5.75分鐘。通過對不同線程數(shù)的測試,發(fā)現(xiàn)不是線程數(shù)越多越好,具體多少合適,網(wǎng)上有一個(gè)不成文的算法

CPU核心數(shù)量*2 +2 個(gè)線程。

附:測試電腦配置

50c32c2a-6555-11ed-8abf-dac502259ad0.png

審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • SQL
    SQL
    +關(guān)注

    關(guān)注

    1

    文章

    807

    瀏覽量

    46965
  • 多線程
    +關(guān)注

    關(guān)注

    0

    文章

    279

    瀏覽量

    21135
  • spring
    +關(guān)注

    關(guān)注

    0

    文章

    341

    瀏覽量

    16063
  • SpringBoot
    +關(guān)注

    關(guān)注

    0

    文章

    178

    瀏覽量

    718

原文標(biāo)題:性能爆表:SpringBoot利用ThreadPoolTaskExecutor批量插入百萬級數(shù)據(jù)實(shí)測!

文章出處:【微信號:芋道源碼,微信公眾號:芋道源碼】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何利用SPI數(shù)據(jù)實(shí)時(shí)反饋調(diào)整錫膏印刷參數(shù)?

    利用SPI(錫膏檢測系統(tǒng))數(shù)據(jù)實(shí)時(shí)反饋調(diào)整錫膏印刷參數(shù),可通過構(gòu)建“檢測-分析-調(diào)整”閉環(huán)系統(tǒng)實(shí)現(xiàn),其核心在于以SPI的三維測量數(shù)據(jù)為基準(zhǔn),結(jié)合工藝優(yōu)化算法動(dòng)態(tài)修正印刷機(jī)參數(shù),具體實(shí)施路徑如下:
    的頭像 發(fā)表于 04-15 09:08 ?433次閱讀

    實(shí)測大電流功率電感 SER2918:國產(chǎn)扁平線電感,對比國產(chǎn)巨頭線藝如何?

    實(shí)測國產(chǎn)SER電感,數(shù)據(jù)與TDK對比,實(shí)際工況表現(xiàn)究竟能否替代進(jìn)口料?本次結(jié)合實(shí)測數(shù)據(jù),客觀分析這款國產(chǎn)扁平線電感的真實(shí)實(shí)力。
    的頭像 發(fā)表于 04-14 08:54 ?500次閱讀
    <b class='flag-5'>實(shí)測</b>大電流功率電感 SER2918:國產(chǎn)扁平線電感,對比國產(chǎn)巨頭線藝如何?

    工業(yè)級板載存儲新選擇:創(chuàng)世 SD NAND 實(shí)測

    2.2自研控制器與Flash管理算法 2.2.1、自研控制器優(yōu)勢 2.2.2、四大Flash管理算法 2.3、與同類產(chǎn)品對比:穩(wěn)省快的平衡之選 三、芯片實(shí)測表現(xiàn) 3.1、測試寫入讀回速度
    發(fā)表于 03-17 18:14

    TB級數(shù)據(jù)手工校驗(yàn)要多久?用NineData僅需小時(shí)級別

    TB級數(shù)據(jù)手工校驗(yàn)要多久?用NineData僅需小時(shí)級別
    的頭像 發(fā)表于 03-16 10:48 ?507次閱讀
    TB<b class='flag-5'>級數(shù)據(jù)</b>手工校驗(yàn)要多久?用NineData僅需小時(shí)級別

    電機(jī)如何區(qū)分級數(shù)

    電機(jī)級數(shù)是電機(jī)設(shè)計(jì)中的重要參數(shù),直接關(guān)系到電機(jī)的轉(zhuǎn)速、扭矩和功率特性。理解電機(jī)級數(shù)的區(qū)分方法,不僅有助于正確選型,還能為設(shè)備匹配和故障診斷提供依據(jù)。本文將從原理、識別方法和應(yīng)用場景三個(gè)維度系統(tǒng)解析電機(jī)級數(shù)的核心知識。
    的頭像 發(fā)表于 03-12 16:47 ?583次閱讀
    電機(jī)如何區(qū)分<b class='flag-5'>級數(shù)</b>

    中軟國際中標(biāo)國際金融巨頭千萬級數(shù)據(jù)平臺建設(shè)項(xiàng)目

    近年來,中軟國際金融業(yè)務(wù)集團(tuán)持續(xù)深化港澳及海外市場的布局,不斷拓展國際合作。近期,公司成功中標(biāo)某頭部國際信用卡清算機(jī)構(gòu)的千萬級數(shù)據(jù)平臺建設(shè)項(xiàng)目,不僅是中軟國際與該金融機(jī)構(gòu)的首次深度攜手,也標(biāo)志著其在外資金融客戶軟硬件集成與數(shù)據(jù)解決方案開發(fā)實(shí)施服務(wù)方面實(shí)現(xiàn)重要突破。
    的頭像 發(fā)表于 03-04 16:12 ?880次閱讀

    固件燒錄速度實(shí)測:JTAG比UART快6.8倍

    批量生產(chǎn)場景中,固件燒錄效率直接影響產(chǎn)線節(jié)拍與交付能力。如何選擇最優(yōu)燒錄方式?本文以ZLG致遠(yuǎn)電子MR6450系列核心板為例,通過實(shí)測數(shù)據(jù)為您解析。MR6450核心板MR6450是ZLG致遠(yuǎn)電子
    的頭像 發(fā)表于 01-27 11:34 ?462次閱讀
    固件燒錄速度<b class='flag-5'>實(shí)測</b>:JTAG比UART快6.8倍

    超聲波風(fēng)速傳感器硬核評測:精度 / 響應(yīng)速度 / 功耗數(shù)據(jù)實(shí)測

    級超聲波風(fēng)速傳感器,圍繞精度、響應(yīng)速度、功耗三大核心指標(biāo)展開實(shí)測,用真實(shí)數(shù)據(jù)為電子發(fā)燒友、工程師提供選型參考。 一、測試準(zhǔn)備:標(biāo)準(zhǔn)設(shè)備與環(huán)境搭建 1. 測試對象 選取市面主流工業(yè)級超聲波風(fēng)速傳感器(型號:RS-CFS-FX
    的頭像 發(fā)表于 01-17 16:59 ?410次閱讀
    超聲波風(fēng)速傳感器硬核評測:精度 / 響應(yīng)速度 / 功耗<b class='flag-5'>數(shù)據(jù)實(shí)測</b>

    某化工企業(yè)實(shí)測:30 天部署采集系統(tǒng),數(shù)據(jù)同步零延遲

    數(shù)據(jù)采集是化工企業(yè)數(shù)字化轉(zhuǎn)型的關(guān)鍵第一步,這套30天部署、零延遲運(yùn)行的實(shí)測方案,以高可靠性提供可復(fù)制路徑。當(dāng)設(shè)備數(shù)據(jù)實(shí)現(xiàn)“即時(shí)感知、分析、應(yīng)用”,化工生產(chǎn)的安全與效率將實(shí)現(xiàn)質(zhì)的飛躍。
    的頭像 發(fā)表于 12-26 10:30 ?470次閱讀
    某化工企業(yè)<b class='flag-5'>實(shí)測</b>:30 天部署采集系統(tǒng),<b class='flag-5'>數(shù)據(jù)</b>同步零延遲

    如何使用SpringBoot、Vue2.0、MySQL開發(fā)一套云診所系統(tǒng)?

    SpringBoot是Java領(lǐng)域非常流行的快速開發(fā)框架,提供了豐富的生態(tài)和自動(dòng)化配置,適合構(gòu)建微服務(wù)和單體應(yīng)用。 它可以很好地處理業(yè)務(wù)邏輯、數(shù)據(jù)持久化、安全性(Spring Security)和API接口
    的頭像 發(fā)表于 11-27 16:02 ?421次閱讀
    如何使用<b class='flag-5'>SpringBoot</b>、Vue2.0、MySQL開發(fā)一套云診所系統(tǒng)?

    Flutter 移動(dòng)端開發(fā):集成淘寶 API 實(shí)現(xiàn)商品數(shù)據(jù)實(shí)時(shí)展示 APP

    在電商蓬勃發(fā)展的當(dāng)下,移動(dòng)端購物成為主流趨勢。對于開發(fā)者而言,利用 Flutter 構(gòu)建一個(gè)能夠?qū)崟r(shí)展示淘寶商品數(shù)據(jù)的 APP,既能滿足用戶便捷獲取商品信息的需求,也能為電商業(yè)務(wù)拓展新的渠道
    的頭像 發(fā)表于 11-13 09:36 ?527次閱讀

    掌握NFC標(biāo)簽批量讀取,輕松提升數(shù)據(jù)采集效率!

    NFC批量讀取技術(shù)解決傳統(tǒng)單點(diǎn)讀取效率低、成本高、易出錯(cuò)等問題,實(shí)現(xiàn)高效、自動(dòng)化數(shù)據(jù)采集。
    的頭像 發(fā)表于 09-23 16:11 ?655次閱讀
    掌握NFC標(biāo)簽<b class='flag-5'>批量</b>讀取,輕松提升<b class='flag-5'>數(shù)據(jù)</b>采集效率!

    RK3506開發(fā)板Xenomai內(nèi)核RT-Linux實(shí)時(shí)性系統(tǒng)適配教程與性能實(shí)測實(shí)測僅7μs穩(wěn)定延時(shí)

    本文基于觸覺智能RK3506核心板/開發(fā)板,介紹Xenomai內(nèi)核RT-Linux實(shí)時(shí)性系統(tǒng)適配,并附性能實(shí)測。簡介與實(shí)測數(shù)據(jù)Xenomai簡介XEnomai是一個(gè)實(shí)時(shí)子系統(tǒng),可與Linux內(nèi)核緊密集成,為應(yīng)用程序提供可預(yù)測的響
    的頭像 發(fā)表于 09-18 14:21 ?1715次閱讀
    RK3506開發(fā)板Xenomai內(nèi)核RT-Linux實(shí)時(shí)性系統(tǒng)適配教程與性能<b class='flag-5'>實(shí)測</b>,<b class='flag-5'>實(shí)測</b>僅7μs穩(wěn)定延時(shí)

    積分球儀器數(shù)據(jù)實(shí)測

    儀器儀表
    jf_90915507
    發(fā)布于 :2025年08月07日 10:20:58

    復(fù)雜裝備研發(fā)設(shè)計(jì)中利用數(shù)據(jù)實(shí)現(xiàn)大規(guī)模個(gè)性化定制

    在復(fù)雜裝備研發(fā)設(shè)計(jì)中,利用數(shù)據(jù)實(shí)現(xiàn)大規(guī)模個(gè)性化定制已成為提升企業(yè)競爭力、滿足多樣化市場需求的關(guān)鍵路徑。其核心在于通過數(shù)據(jù)驅(qū)動(dòng)的個(gè)性化需求識別、模塊化設(shè)計(jì)、柔性生產(chǎn)、智能決策及閉環(huán)反饋,實(shí)現(xiàn)高標(biāo)準(zhǔn)滿足
    的頭像 發(fā)表于 08-06 17:17 ?887次閱讀
    曲周县| 龙陵县| 长宁区| 深水埗区| 昌黎县| 阳信县| 防城港市| 璧山县| 盐源县| 连江县| 缙云县| 临汾市| 兴安县| 永春县| 福州市| 高陵县| 中阳县| 荥阳市| 吴江市| 修水县| 南阳市| 宁德市| 莱西市| 洞口县| 庐江县| 乌兰浩特市| 广河县| 普兰店市| 九江市| 兴业县| 堆龙德庆县| 常山县| 德阳市| 淳化县| 抚宁县| 云林县| 安远县| 都江堰市| 平定县| 广丰县| 沾化县|