最新国产好看的视频,伊人天堂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)用程序,需要的朋友可以參考下

前言

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

定義配置類

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

  • 異步線程的提供者,在里面配置自動(dòng)執(zhí)行的東西,如線程池參數(shù)。
  • 線程異常的處理。
@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());
        };
    }
}

線程池配置類

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

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

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

線程任務(wù)類

/**
 * 異步創(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)圖書管理基本功能

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

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

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

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

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

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

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

    本文介紹了通過(guò)Java反射機(jī)制獲取類的信息,包括類的名稱、成員方法和成員變量,具體實(shí)現(xiàn)方式包括通過(guò)`getClass()`獲取類類型,使用`Method`類獲取方法對(duì)象,使用`Field`類獲取成員變量信息,文章還提供了完整實(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類的add()的使用詳解

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

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

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

    這篇文章主要為大家介紹了鎖超時(shí)發(fā)現(xiàn)parallelStream并行流線程上下文坑解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(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è)試類沒(méi)有bean注入問(wèn)題解析

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

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

最新評(píng)論

本溪| 子长县| 峡江县| 昭觉县| 固镇县| 太仆寺旗| 凤台县| 津市市| 高雄市| 余庆县| 东乡| 施秉县| 尖扎县| 苏尼特左旗| 柘荣县| 蕲春县| 宁远县| 南川市| 彭州市| 永靖县| 前郭尔| 嘉鱼县| 西林县| 吴堡县| 竹北市| 金门县| 平阳县| 兴山县| 峡江县| 卢龙县| 湘西| 阳朔县| 邹城市| 政和县| 新晃| 广德县| 清原| 苏州市| 庐江县| 通州区| 翼城县|