首页>代码>ssm整合vue实现会员管理系统,含1w字论文,可做毕业设计参考实例>/会员管理系统/member/member-admin/src/main/java/co/yixiang/config/thread/AsyncTaskExecutePool.java
/**
 * Copyright (C) 2018-2022
 * All rights reserved, Designed By www.member
 * 注意:
 * 本软件为www.member开发研制
 */
package co.yixiang.config.thread;

import lombok.extern.slf4j.Slf4j;
import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.AsyncConfigurer;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;

import java.util.concurrent.Executor;
import java.util.concurrent.ThreadPoolExecutor;

/**
 * 异步任务线程池装配类
 * @author https://juejin.im/entry/5abb8f6951882555677e9da2
 * @date 2019年10月31日15:06:18
 */
@Slf4j
@Configuration
public class AsyncTaskExecutePool implements AsyncConfigurer {

    /** 注入配置类 */
    private final AsyncTaskProperties config;

    public AsyncTaskExecutePool(AsyncTaskProperties config) {
        this.config = config;
    }

    @Override
    public Executor getAsyncExecutor() {
        ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
        //核心线程池大小
        executor.setCorePoolSize(config.getCorePoolSize());
        //最大线程数
        executor.setMaxPoolSize(config.getMaxPoolSize());
        //队列容量
        executor.setQueueCapacity(config.getQueueCapacity());
        //活跃时间
        executor.setKeepAliveSeconds(config.getKeepAliveSeconds());
        //线程名字前缀
        executor.setThreadNamePrefix("el-async-");
        // setRejectedExecutionHandler:当pool已经达到max size的时候,如何处理新任务
        // CallerRunsPolicy:不在新线程中执行任务,而是由调用者所在的线程来执行
        executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
        executor.initialize();
        return executor;
    }

    @Override
    public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler() {
        return (throwable, method, objects) -> {
            log.error("====" + throwable.getMessage() + "====", throwable);
            log.error("exception method:" + method.getName());
        };
    }
}
最近下载更多
陈小灏  LV18 2月25日
java菜鸟1号  LV7 2024年12月4日
zolscy  LV24 2024年11月27日
withyouatdusk  LV2 2024年9月29日
wenjie_5419  LV13 2024年7月10日
15342201772  LV9 2024年6月25日
TY0165  LV20 2024年6月17日
bbczlitao  LV9 2024年6月11日
李怡桦  LV1 2024年6月7日
qwe6002  LV10 2024年5月24日
最近浏览更多
叉烧君  LV3 3月26日
xiaoaitx  LV8 1月1日
11999333  LV1 2024年12月23日
dengge123  LV14 2024年12月13日
java菜鸟1号  LV7 2024年12月4日
zolscy  LV24 2024年11月27日
1123efd 2024年11月11日
暂无贡献等级
972709683  LV1 2024年10月31日
yangchengshuai  LV15 2024年10月29日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友