| 
				
				
					
				
				
				 | 
			
			 | 
			@@ -40,15 +40,23 @@ import java.util.regex.Pattern; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			 * | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			 */ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			public class WxMpMessageRouter { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			   | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			  private static final int DEFAULT_THREAD_POOL_SIZE = 20; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			  private final List<Rule> rules = new ArrayList<Rule>(); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			  private final ExecutorService executorService = Executors.newCachedThreadPool(); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			  private final ExecutorService executorService; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			  private final WxMpService wxMpService; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			  public WxMpMessageRouter(WxMpService wxMpService) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    this.wxMpService = wxMpService; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    this.executorService = Executors.newFixedThreadPool(DEFAULT_THREAD_POOL_SIZE); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			  } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			  public WxMpMessageRouter(WxMpService wxMpService, int threadPoolSize) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    this.wxMpService = wxMpService; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    this.executorService = Executors.newFixedThreadPool(threadPoolSize); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			  } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			  /** | 
		
		
	
	
		
			
				| 
				
					
				
				
					
				
				
				 | 
			
			 | 
			@@ -79,7 +87,7 @@ public class WxMpMessageRouter { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    if (matchRules.get(0).async) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      // 只要第一个是异步的,那就异步执行 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      // 在另一个线程里执行 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      executorService.submit(new Runnable() { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      executorService.execute(new Runnable() { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        public void run() { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			          for (final Rule rule : matchRules) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            rule.service(wxMessage); | 
		
		
	
	
		
			
				| 
				
					
				
				
				
				 | 
			
			 | 
			
  |