Spring Boot定時(shí)+多線程執(zhí)行過程解析
這篇文章主要介紹了Spring Boot定時(shí)+多線程執(zhí)行過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
Spring Boot 定時(shí)任務(wù)有多種實(shí)現(xiàn)方式,我在一個(gè)微型項(xiàng)目中通過注解方式執(zhí)行定時(shí)任務(wù)。
具體執(zhí)行的任務(wù),通過多線程方式執(zhí)行,單線程執(zhí)行需要1小時(shí)的任務(wù),多線程下5分鐘就完成了。
執(zhí)行效率提升10倍以上,執(zhí)行效率提升10倍以上,執(zhí)行效率提升10倍以上。
重要的事情說三遍!
本文不深入介紹具體的原理,大家如果要實(shí)現(xiàn)類似的功能,只需要執(zhí)行下面1~5即可。
(1)定時(shí)任務(wù)實(shí)現(xiàn)
在需要定時(shí)執(zhí)行的的方法上面增加注解 @Scheduled(cron="01 00 17 * * ?") //[秒] [分] [小時(shí)] [日] [月] [周] [年]。
其中cron類似于Linux定時(shí)執(zhí)行的寫法,上述表示該任務(wù)每天17:00執(zhí)行一次。
(2)定時(shí)任務(wù)方法內(nèi)部多線程執(zhí)行的部分
需要多線程執(zhí)行的部分,要重新定義一個(gè)類,然后注入該類的變量。如我這里定義了一個(gè)類DoBackupTask,在這個(gè)類中通過多線程方式執(zhí)行任務(wù)。

(3)多線程實(shí)現(xiàn)部分
多線程執(zhí)行方法上,增加注解@Async("taskExecutor"),參數(shù)為線程池的名稱

(4)線程池實(shí)現(xiàn)
線程池我定義了一個(gè)類,在該類中定義了一個(gè)方法asyncExecutor。該方法生成ThreadPoolTaskExecutor的一個(gè)對(duì)象,設(shè)置線程數(shù)量,線程池的名稱等參數(shù)。

(5)當(dāng)上述步驟都做好了,然而并沒有效果。可能你漏了最關(guān)鍵的一步:在應(yīng)用啟動(dòng)類上,增加注解
@EnableScheduling 啟用多線程
@EnableAsync 異步執(zhí)行
如果還是不清楚具體位置,就找@SpringBootApplication這個(gè)注解,放在一起就可以了。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Spring Boot如何優(yōu)雅的使用多線程實(shí)例詳解
- Spring boot如何通過@Scheduled實(shí)現(xiàn)定時(shí)任務(wù)及多線程配置
- Spring Boot中配置定時(shí)任務(wù)、線程池與多線程池執(zhí)行的方法
- spring-boot 多線程并發(fā)定時(shí)任務(wù)的解決方案
- 詳解SpringBoot 多線程處理任務(wù) 無法@Autowired注入bean問題解決
- spring boot中多線程開發(fā)的注意事項(xiàng)總結(jié)
- 解決SpringBoot項(xiàng)目使用多線程處理任務(wù)時(shí)無法通過@Autowired注入bean問題
- 詳解Springboot對(duì)多線程的支持
- 實(shí)例講解spring boot 多線程
相關(guān)文章
Java如何將int型數(shù)組轉(zhuǎn)為String型數(shù)組
這篇文章主要介紹了Java如何將int型數(shù)組轉(zhuǎn)為String型數(shù)組,本文給大家分享具體實(shí)現(xiàn)思路結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-03-03
Java如何使用JWT實(shí)現(xiàn)Token認(rèn)證機(jī)制
JWT(JSON Web Token)是一種用于在網(wǎng)絡(luò)上安全地傳輸信息的簡(jiǎn)潔的、URL 安全的表示方法,本文主要介紹了Java如何使用JWT實(shí)現(xiàn)Token認(rèn)證機(jī)制,需要的可以參考下2024-10-10
Jmeter對(duì)接口測(cè)試入?yún)?shí)現(xiàn)MD5加密
這篇文章主要介紹了Jmeter對(duì)接口測(cè)試入?yún)?shí)現(xiàn)MD5加密,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08
在idea中創(chuàng)建SpringBoot模塊的兩種方式
這篇文章主要介紹了在idea中創(chuàng)建一個(gè)SpringBoot模塊,本文給大家分享兩種方式,每種方式分步驟給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-05-05
Ubuntu安裝JDK與IntelliJ?IDEA的詳細(xì)過程
APT是Linux系統(tǒng)上的包管理工具,能自動(dòng)解決軟件包依賴關(guān)系并從遠(yuǎn)程存儲(chǔ)庫中獲取安裝軟件包,這篇文章主要介紹了Ubuntu安裝JDK與IntelliJ?IDEA的過程,需要的朋友可以參考下2023-08-08
httpclient staleConnectionCheckEnabled獲取連接流程解析
這篇文章主要為大家介紹了httpclient staleConnectionCheckEnabled獲取連接流程示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11

