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

SpringBoot的@EnableAsync和@Async注解分析

 更新時(shí)間:2023年07月18日 09:57:08   作者:七月J  
這篇文章主要介紹了SpringBoot的@EnableAsync和@Async注解分析,Spring Boot是一個(gè)快速開(kāi)發(fā)框架,可以幫助開(kāi)發(fā)人員快速構(gòu)建基于Spring的應(yīng)用程序,需要的朋友可以參考下

前言

使用多線(xiàn)程,往往是創(chuàng)建Thread,或者是實(shí)現(xiàn)Runnable接口,用到線(xiàn)程池得時(shí)候需要?jiǎng)?chuàng)建Executors,通過(guò)使用@EnableAsync注解就可以使用多線(xiàn)程,@Async注解加在線(xiàn)程任務(wù)的方法上 可以異步執(zhí)行任務(wù)。使用 ThreadPoolTaskExecutor 就可以使用線(xiàn)程池。

定義配置類(lèi)

這個(gè)配置類(lèi)需要實(shí)現(xiàn)AsyncConfigurer接口,并實(shí)現(xiàn)他的方法

  • 異步線(xiàn)程的提供者,在里面配置自動(dòng)執(zhí)行的東西,如線(xiàn)程池參數(shù)。
  • 線(xiàn)程異常的處理。
@Configuration
@EnableAsync
public class ThreadPoolConfig implements AsyncConfigurer {
    private static final Logger log = LoggerFactory.getLogger(ThreadPoolConfig.class);
    @Autowired
    private ThreadPoolParamsConfig threadPoolParamsConfig;
    @Override
    @Bean("taskExecutor")
    public Executor getAsyncExecutor() {
        ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
        executor.setCorePoolSize(threadPoolParamsConfig.getCorePoolSize());
        executor.setMaxPoolSize(threadPoolParamsConfig.getMaxPoolSize());
        executor.setQueueCapacity(threadPoolParamsConfig.getQueueCapacity());
        executor.setKeepAliveSeconds(threadPoolParamsConfig.getKeepAliveSeconds());
        executor.setThreadNamePrefix("authority-manage-thread-");
        executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
        executor.initialize();
        return executor;
    }
    @Override
    public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler() {
        return (ex,method,params) -> {
          log.error("異常信息:{}",ex.getMessage());
          log.error("exception method:{}",method.getName());
        };
    }
}

線(xiàn)程池配置類(lèi)

@Data
@Component
@ConfigurationProperties(prefix = "task.pool")
public class ThreadPoolParamsConfig {
    /**
     * 核心線(xiàn)程數(shù)
     */
    private int corePoolSize;
    /**
     * 最大線(xiàn)程數(shù)
     */
    private int maxPoolSize;
    /**
     * 線(xiàn)程空閑空間
     */
    private int keepAliveSeconds;
    /**
     * 任務(wù)隊(duì)列容量
     */
    private int queueCapacity;
}

調(diào)用異步線(xiàn)程任務(wù)

/**
 * 測(cè)試異步創(chuàng)建任務(wù)
 * @return
 */
public Result createIsueTask() {
    inspPlanRlnToolService.asynsBatchCreateIsueTasks();
    return Result.ok();
}

線(xiàn)程任務(wù)類(lèi)

/**
 * 異步創(chuàng)建任務(wù)
 */
@Async("taskExecutor")
@Override
public void asynsBatchCreateIsueTasks() {
    log.info("這是一個(gè)異步任務(wù)");
}

到此這篇關(guān)于SpringBoot的@EnableAsync和@Async注解分析的文章就介紹到這了,更多相關(guān)SpringBoot的@EnableAsync內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java快速實(shí)現(xiàn)圖書(shū)管理基本功能

    Java快速實(shí)現(xiàn)圖書(shū)管理基本功能

    隨著網(wǎng)絡(luò)技術(shù)的高速發(fā)展,計(jì)算機(jī)應(yīng)用的普及,利用計(jì)算機(jī)對(duì)圖書(shū)館的日常工作進(jìn)行管理勢(shì)在必行,本篇文章涵蓋一個(gè)圖書(shū)管理系統(tǒng)的基本功能實(shí)現(xiàn)代碼,大家可以查缺補(bǔ)漏,提升水平
    2022-05-05
  • Jenkins安裝與配置及漢化過(guò)程

    Jenkins安裝與配置及漢化過(guò)程

    這篇文章主要介紹了Jenkins安裝與配置及漢化過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 實(shí)例講解分布式緩存軟件Memcached的Java客戶(hù)端使用

    實(shí)例講解分布式緩存軟件Memcached的Java客戶(hù)端使用

    這篇文章主要介紹了分布式緩存軟件Memcached的Java客戶(hù)端使用,Memcached在GitHub上開(kāi)源,作者用其Windows平臺(tái)下的版本進(jìn)行演示,需要的朋友可以參考下
    2016-01-01
  • Java反射之Java獲取方法信息實(shí)踐

    Java反射之Java獲取方法信息實(shí)踐

    本文介紹了通過(guò)Java反射機(jī)制獲取類(lèi)的信息,包括類(lèi)的名稱(chēng)、成員方法和成員變量,具體實(shí)現(xiàn)方式包括通過(guò)`getClass()`獲取類(lèi)類(lèi)型,使用`Method`類(lèi)獲取方法對(duì)象,使用`Field`類(lèi)獲取成員變量信息,文章還提供了完整實(shí)例代碼
    2026-05-05
  • springBoot Junit測(cè)試用例出現(xiàn)@Autowired不生效的解決

    springBoot Junit測(cè)試用例出現(xiàn)@Autowired不生效的解決

    這篇文章主要介紹了springBoot Junit測(cè)試用例出現(xiàn)@Autowired不生效的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java中BigDecimal類(lèi)的add()的使用詳解

    Java中BigDecimal類(lèi)的add()的使用詳解

    這篇文章主要介紹了Java中BigDecimal類(lèi)的add()的使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 鎖超時(shí)發(fā)現(xiàn)parallelStream并行流線(xiàn)程上下文坑解決

    鎖超時(shí)發(fā)現(xiàn)parallelStream并行流線(xiàn)程上下文坑解決

    這篇文章主要為大家介紹了鎖超時(shí)發(fā)現(xiàn)parallelStream并行流線(xiàn)程上下文坑解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • 解決java 查看JDK中底層源碼的實(shí)現(xiàn)方法

    解決java 查看JDK中底層源碼的實(shí)現(xiàn)方法

    本篇文章是對(duì)在java中查看JDK中底層源碼的解決方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • 識(shí)別率很高的java文字識(shí)別技術(shù)

    識(shí)別率很高的java文字識(shí)別技術(shù)

    這篇文章主要為大家詳細(xì)介紹了識(shí)別率很高的java文字識(shí)別技術(shù),親測(cè),希望對(duì)大家有幫助,感興趣的小伙伴們可以參考一下
    2016-08-08
  • Springboot測(cè)試類(lèi)沒(méi)有bean注入問(wèn)題解析

    Springboot測(cè)試類(lèi)沒(méi)有bean注入問(wèn)題解析

    這篇文章主要介紹了Springboot測(cè)試類(lèi)沒(méi)有bean注入問(wèn)題解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12

最新評(píng)論

普安县| 嘉峪关市| 嘉善县| 太康县| 敖汉旗| 怀集县| 贵溪市| 资源县| 建湖县| 衡阳市| 雷波县| 双城市| 周宁县| 塔河县| 宁津县| 五莲县| 柘城县| 项城市| 峡江县| 青冈县| 樟树市| 锦州市| 垣曲县| 安康市| 恩施市| 漠河县| 奇台县| 南岸区| 蓬莱市| 屯留县| 定日县| 潍坊市| 读书| 乌兰察布市| 越西县| 河东区| 进贤县| 保康县| 德钦县| 平顺县| 阜平县|