陈昶聿
12 小时以前 0d10bc99eec75672b049339399e4f762fbd9746e
ruoyi-framework/src/main/java/com/ruoyi/framework/config/ThreadPoolConfig.java
@@ -1,6 +1,7 @@
package com.ruoyi.framework.config;
import com.ruoyi.common.utils.Threads;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.concurrent.BasicThreadFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -15,6 +16,7 @@
 *
 * @author ruoyi
 **/
@Slf4j
@Configuration
public class ThreadPoolConfig
{
@@ -34,12 +36,22 @@
    public ThreadPoolTaskExecutor threadPoolTaskExecutor()
    {
        ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
        executor.setMaxPoolSize(maxPoolSize);
        // 核心线程池大小
        executor.setCorePoolSize(corePoolSize);
        // 最大可创建的线程数
        executor.setMaxPoolSize(maxPoolSize);
        // 队列最大长度
        executor.setQueueCapacity(queueCapacity);
        // 线程池维护线程所允许的空闲时间
        executor.setKeepAliveSeconds(keepAliveSeconds);
        // 线程池对拒绝任务(无线程可用)的处理策略
        // 线程名称前缀
        executor.setThreadNamePrefix("async-task-executor-");
        // 设置线程工厂 (用于给线程命名,便于排查问题)
        executor.setThreadFactory(new BasicThreadFactory.Builder().namingPattern("async-task-%d").daemon(true).build());
        // 线程池对拒绝任务 (无线程可用) 的处理策略 - 调用者运行策略
        executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
        // 初始化
        executor.initialize();
        return executor;
    }