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

Spring?Boot多個定時任務阻塞問題的解決方法

 更新時間:2022年01月04日 16:38:25   作者:不才陳某  
在日常的項目開發(fā)中,往往會涉及到一些需要做到定時執(zhí)行的代碼,下面這篇文章主要給大家介紹了關(guān)于Spring?Boot多個定時任務阻塞問題的解決方法,需要的朋友可以參考下

前言

今天這篇文章介紹一下Spring Boot 中 如何開啟多線程定時任務?

為什么Spring Boot 定時任務是單線程的?

想要解釋為什么,一定要從源碼入手,直接從@EnableScheduling這個注解入手,找到了這個ScheduledTaskRegistrar類,其中有一段代碼如下:

protected void scheduleTasks() {
  if (this.taskScheduler == null) {
   this.localExecutor = Executors.newSingleThreadScheduledExecutor();
   this.taskScheduler = new ConcurrentTaskScheduler(this.localExecutor);
  }
}

如果taskScheduler為null,則創(chuàng)建單線程的線程池:Executors.newSingleThreadScheduledExecutor()。

多線程定時任務如何配置?

下面介紹三種方案配置多線程下的定時任務。

1、重寫SchedulingConfigurer#configureTasks()

直接實現(xiàn)SchedulingConfigurer這個接口,設置taskScheduler,代碼如下:

@Configuration
public class ScheduleConfig implements SchedulingConfigurer {
    @Override
    public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
        //設定一個長度10的定時任務線程池
        taskRegistrar.setScheduler(Executors.newScheduledThreadPool(10));
    }
}

2、通過配置開啟

Spring Boot quartz 已經(jīng)提供了一個配置用來配置線程池的大小,如下;

spring.task.scheduling.pool.size=10

只需要在配置文件中添加如上的配置即可生效!

3、結(jié)合@Async

@Async這個注解都用過,用來開啟異步任務的,使用@Async這個注解之前一定是要先配置線程池的,配置如下:

    @Bean
    public ThreadPoolTaskExecutor taskExecutor() {
        ThreadPoolTaskExecutor poolTaskExecutor = new ThreadPoolTaskExecutor();
        poolTaskExecutor.setCorePoolSize(4);
        poolTaskExecutor.setMaxPoolSize(6);
        // 設置線程活躍時間(秒)
        poolTaskExecutor.setKeepAliveSeconds(120);
        // 設置隊列容量
        poolTaskExecutor.setQueueCapacity(40);
        poolTaskExecutor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
        // 等待所有任務結(jié)束后再關(guān)閉線程池
        poolTaskExecutor.setWaitForTasksToCompleteOnShutdown(true);
        return poolTaskExecutor;
    }

然后在@Scheduled方法上標注@Async這個注解即可實現(xiàn)多線程定時任務,代碼如下:

 @Async
    @Scheduled(cron = "0/2 * * * * ? ")
    public void test2() {
        System.out.println("..................執(zhí)行test2.................");
    }

總結(jié)

本篇文章介紹了Spring Boot 中 實現(xiàn)多線程定時任務的三種方案,你喜歡哪一種?

到此這篇關(guān)于Spring Boot多個定時任務阻塞問題解決的文章就介紹到這了,更多相關(guān)SpringBoot多定時任務阻塞內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java處理Markdown格式轉(zhuǎn)換為Word文檔

    Java處理Markdown格式轉(zhuǎn)換為Word文檔

    這篇文章主要為大家詳細介紹了如何使用Java實現(xiàn)處理Markdown格式轉(zhuǎn)換為Word文檔,文中的示例代碼講解詳細,感興趣的小伙伴可以參考一下
    2025-03-03
  • java調(diào)用短信貓發(fā)短信示例

    java調(diào)用短信貓發(fā)短信示例

    這篇文章主要介紹了java調(diào)用短信貓發(fā)短信示例,需要的朋友可以參考下
    2014-04-04
  • 一文搞懂hashCode()和equals()方法的原理

    一文搞懂hashCode()和equals()方法的原理

    這篇文章主要介紹了詳解hashCode()和equals()的本質(zhì)區(qū)別和聯(lián)系,本文先對兩種方法作了介紹,然后對二者聯(lián)系進行分析,具有一定參考價值,需要的朋友可以了解下
    2020-06-06
  • java中Map接口常用的方法解讀

    java中Map接口常用的方法解讀

    這篇文章主要介紹了java中Map接口常用的方法解讀,Map接口是雙列集合,它的每一個元素都包含一個鍵對象key和值對象Value,鍵和值對象之間存在一種對應關(guān)系,稱為映射,需要的朋友可以參考下
    2024-01-01
  • Springboot?整合maven插口調(diào)用maven?release?plugin實現(xiàn)一鍵打包功能

    Springboot?整合maven插口調(diào)用maven?release?plugin實現(xiàn)一鍵打包功能

    這篇文章主要介紹了Springboot?整合maven插口調(diào)用maven?release?plugin實現(xiàn)一鍵打包功能,整合maven-invoker使程序去執(zhí)行mvn命令,結(jié)合示例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2022-03-03
  • 徹底解決tomcat中文亂碼問題方案

    徹底解決tomcat中文亂碼問題方案

    這篇文章主要介紹了徹底解決tomcat中文亂碼問題方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • spring注解在自定義jar包中無法被掃描的解決方案

    spring注解在自定義jar包中無法被掃描的解決方案

    這篇文章主要介紹了spring注解在自定義jar包中無法被掃描的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Java的JSON格式轉(zhuǎn)換庫GSON的初步使用筆記

    Java的JSON格式轉(zhuǎn)換庫GSON的初步使用筆記

    GSON是Google開發(fā)并在在GitHub上開源的Java對象與JSON互轉(zhuǎn)功能類庫,在Android開發(fā)者中也大受歡迎,這里我們就來看一下Java的JSON格式轉(zhuǎn)換庫GSON的初步使用筆記:
    2016-06-06
  • SpringBoot集成WebSocket實現(xiàn)后臺向前端推送信息的示例

    SpringBoot集成WebSocket實現(xiàn)后臺向前端推送信息的示例

    這篇文章主要介紹了SpringBoot集成WebSocket實現(xiàn)后臺向前端推送信息的示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • 在SpringBoot中配置日期格式化的方法詳解

    在SpringBoot中配置日期格式化的方法詳解

    通常情況下,發(fā)起一個 Http 請求,Spring Boot 會根據(jù)請求路徑映射到指定 Controller 上的某個方法的參數(shù)上,接著,Spring 會自動進行類型轉(zhuǎn)換,對于日期類型的參數(shù),Spring 默認是沒有配置如何將字符串轉(zhuǎn)換成日期類型的,本文將給大家介紹在SpringBoot中配置日期格式化的方法
    2023-10-10

最新評論

杂多县| 宜阳县| 浑源县| 沙洋县| 观塘区| 宝应县| 嫩江县| 灵山县| 汕头市| 南溪县| 鸡东县| 周口市| 收藏| 河间市| 绥芬河市| 徐州市| 兴城市| 榆林市| 从化市| 务川| 二连浩特市| 前郭尔| 宝应县| 九江市| 鹿邑县| 曲沃县| 定州市| 扎鲁特旗| 紫云| 乡城县| 建平县| 东方市| 航空| 灵丘县| 隆回县| 花莲县| 安阳县| 崇信县| 刚察县| 石城县| 隆回县|