SpringBoot定時+多線程執(zhí)行過程解析

這篇文章主要介紹了Spring Boot定時+多線程執(zhí)行過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

10年積累的成都做網(wǎng)站、網(wǎng)站建設(shè)經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站設(shè)計后付款的網(wǎng)站建設(shè)流程,更有巴宜免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

Spring Boot 定時任務(wù)有多種實現(xiàn)方式,我在一個微型項目中通過注解方式執(zhí)行定時任務(wù)。

具體執(zhí)行的任務(wù),通過多線程方式執(zhí)行,單線程執(zhí)行需要1小時的任務(wù),多線程下5分鐘就完成了。

執(zhí)行效率提升10倍以上,執(zhí)行效率提升10倍以上,執(zhí)行效率提升10倍以上。

重要的事情說三遍!

本文不深入介紹具體的原理,大家如果要實現(xiàn)類似的功能,只需要執(zhí)行下面1~5即可。

(1)定時任務(wù)實現(xiàn)

在需要定時執(zhí)行的的方法上面增加注解 @Scheduled(cron="01 00 17 * * ?") //[秒] [分] [小時] [日] [月] [周] [年]。

其中cron類似于Linux定時執(zhí)行的寫法,上述表示該任務(wù)每天17:00執(zhí)行一次。

(2)定時任務(wù)方法內(nèi)部多線程執(zhí)行的部分

需要多線程執(zhí)行的部分,要重新定義一個類,然后注入該類的變量。如我這里定義了一個類DoBackupTask,在這個類中通過多線程方式執(zhí)行任務(wù)。

Spring Boot定時+多線程執(zhí)行過程解析

(3)多線程實現(xiàn)部分

多線程執(zhí)行方法上,增加注解@Async("taskExecutor"),參數(shù)為線程池的名稱

Spring Boot定時+多線程執(zhí)行過程解析

(4)線程池實現(xiàn)

線程池我定義了一個類,在該類中定義了一個方法asyncExecutor。該方法生成ThreadPoolTaskExecutor的一個對象,設(shè)置線程數(shù)量,線程池的名稱等參數(shù)。

Spring Boot定時+多線程執(zhí)行過程解析

(5)當(dāng)上述步驟都做好了,然而并沒有效果。可能你漏了最關(guān)鍵的一步:在應(yīng)用啟動類上,增加注解

@EnableScheduling 啟用多線程

@EnableAsync 異步執(zhí)行

如果還是不清楚具體位置,就找@SpringBootApplication這個注解,放在一起就可以了。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。

新聞名稱:SpringBoot定時+多線程執(zhí)行過程解析
路徑分享:http://muchs.cn/article0/jpihio.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供python、網(wǎng)站導(dǎo)航服務(wù)器托管、App設(shè)計、網(wǎng)站設(shè)計公司、用戶體驗

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站