當前位置 主頁 > 網站技術 > 代碼類 > 最大化 縮小

    Spring Boot定時+多線程執行過程解析

    欄目:代碼類 時間:2020-01-02 15:07

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

    Spring Boot 定時任務有多種實現方式,我在一個微型項目中通過注解方式執行定時任務。

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

    執行效率提升10倍以上,執行效率提升10倍以上,執行效率提升10倍以上。

    重要的事情說三遍!

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

    (1)定時任務實現

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

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

    (2)定時任務方法內部多線程執行的部分

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

    (3)多線程實現部分

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

    (4)線程池實現

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

    (5)當上述步驟都做好了,然而并沒有效果?赡苣懵┝俗铌P鍵的一步:在應用啟動類上,增加注解

    @EnableScheduling 啟用多線程

    @EnableAsync 異步執行

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

    以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持IIS7站長之家。

    下一篇:沒有了
青海十一选五开奖数据 期货配资找久联优配 青海十一选五电子走势图 网络赚钱app 天津时时彩开奖时间表 喜迎捕鱼游戏中心下载 体彩大乐透最准十专家 直播篮球在线直播 长沙麻将口诀解析 北京pk10走势图计划 p62开奖号码