| 
					
				 | 
			
			
				@ -20,15 +20,22 @@ public class AsyncConfig { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Bean 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public Executor taskExecutor() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        executor.setCorePoolSize(5);        // 设置核心线程数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        executor.setMaxPoolSize(20);        // 设置最大线程数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        executor.setQueueCapacity(200);      // 设置队列容量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        executor.setKeepAliveSeconds(60);   // 设置线程活跃时间(秒) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        executor.setThreadNamePrefix("user-device-");  // 设置默认线程名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 设置核心线程数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        executor.setCorePoolSize(5); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 设置最大线程数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        executor.setMaxPoolSize(20); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 设置队列容量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        executor.setQueueCapacity(200); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 设置线程活跃时间(秒) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        executor.setKeepAliveSeconds(60); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 设置默认线程名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        executor.setThreadNamePrefix("user-device-"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 设置拒绝策略 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // rejection-policy:当pool已经达到max size的时候,如何处理新任务 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // CALLER_RUNS:不在新线程中执行任务,而是有调用者所在的线程来执行 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());// 设置拒绝策略 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        executor.setWaitForTasksToCompleteOnShutdown(true); // 等待所有任务结束后再关闭线程池 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        // 等待所有任务结束后再关闭线程池 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        executor.setWaitForTasksToCompleteOnShutdown(true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        executor.initialize(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return executor; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 |