springboot线程池配置 拼搏现实的明天。 2022-11-18 04:34 101阅读 0赞 1. application.yml配置 \# 异步线程配置 \# 配置核心线程数 async.executor.thread.core\_pool\_size: 10 \# 配置最大线程数 async.executor.thread.max\_pool\_size: 20 \# 配置队列大小 async.executor.thread.queue\_capacity: 99999 \# 配置线程池中的线程的名称前缀 async.executor.thread.name.prefix: async-service- 2. config配置类 @Configuration @EnableAsync public class ExecutorConfig \{ private static final Logger logger = LoggerFactory.getLogger(ExecutorConfig1.class); @Value("$\{async.executor.thread.core\_pool\_size\}") private int corePoolSize; @Value("$\{async.executor.thread.max\_pool\_size\}") private int maxPoolSize; @Value("$\{async.executor.thread.queue\_capacity\}") private int queueCapacity; @Value("$\{async.executor.thread.name.prefix\}") private String namePrefix; @Bean(name = "asyncServiceExecutor") public Executor asyncServiceExecutor() \{ logger.info("==============> start asyncServiceExecutor"); ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); //配置核心线程数 executor.setCorePoolSize(corePoolSize); //配置最大线程数 executor.setMaxPoolSize(maxPoolSize); //配置队列大小 executor.setQueueCapacity(queueCapacity); //配置线程池中的线程的名称前缀 executor.setThreadNamePrefix(namePrefix); // rejection-policy:当pool已经达到max size的时候,如何处理新任务 // CALLER\_RUNS:不在新线程中执行任务,而是有调用者所在的线程来执行 executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); //执行初始化 executor.initialize(); return executor; \} \} 3. 调用, 直接在service方法上加注解 @Async("asyncServiceExecutor") public void checkWork(long eProjectId, String projectIds) \{ \}
还没有评论,来说两句吧...