¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.yssh.config; |
| | | |
| | | import java.util.concurrent.ThreadPoolExecutor; |
| | | |
| | | import org.springframework.context.annotation.Bean; |
| | | import org.springframework.context.annotation.Configuration; |
| | | import org.springframework.scheduling.annotation.EnableAsync; |
| | | import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; |
| | | |
| | | /** |
| | | * çº¿ç¨æ± é
ç½® |
| | | * |
| | | * @author tam |
| | | **/ |
| | | @Configuration |
| | | @EnableAsync |
| | | public class ThreadPoolConfig { |
| | | // æ ¸å¿çº¿ç¨æ± å¤§å° |
| | | private int corePoolSize = 50; |
| | | |
| | | // æå¤§å¯å建ççº¿ç¨æ° |
| | | private int maxPoolSize = 200; |
| | | |
| | | // éåæå¤§é¿åº¦ |
| | | private int queueCapacity = 1000; |
| | | |
| | | // çº¿ç¨æ± ç»´æ¤çº¿ç¨æå
许çç©ºé²æ¶é´ |
| | | private int keepAliveSeconds = 300; |
| | | |
| | | //é
ç½®çº¿ç¨æ± ä¸ç线ç¨çåç§°åç¼ |
| | | private String threadNamePrefix = "async-importDB-"; |
| | | |
| | | @Bean(name = "threadPoolTaskExecutor") |
| | | public ThreadPoolTaskExecutor threadPoolTaskExecutor() { |
| | | ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); |
| | | executor.setMaxPoolSize(maxPoolSize); |
| | | executor.setCorePoolSize(corePoolSize); |
| | | executor.setQueueCapacity(queueCapacity); |
| | | executor.setKeepAliveSeconds(keepAliveSeconds); |
| | | executor.setThreadNamePrefix(threadNamePrefix); |
| | | // çº¿ç¨æ± 对æç»ä»»å¡(æ 线ç¨å¯ç¨)çå¤ççç¥ |
| | | executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); |
| | | return executor; |
| | | } |
| | | |
| | | } |