|  |  | @@ -87,25 +87,17 @@ public class WxMpMessageRouter { | 
		
	
		
			
			|  |  |  | return null; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | if (matchRules.get(0).async) { | 
		
	
		
			
			|  |  |  | // 只要第一个是异步的,那就异步执行 | 
		
	
		
			
			|  |  |  | // 在另一个线程里执行 | 
		
	
		
			
			|  |  |  | executorService.execute(new Runnable() { | 
		
	
		
			
			|  |  |  | public void run() { | 
		
	
		
			
			|  |  |  | for (final Rule rule : matchRules) { | 
		
	
		
			
			|  |  |  | rule.service(wxMessage); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | }); | 
		
	
		
			
			|  |  |  | return null; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | WxMpXmlOutMessage res = null; | 
		
	
		
			
			|  |  |  | for (final Rule rule : matchRules) { | 
		
	
		
			
			|  |  |  | // 返回最后一个匹配规则的结果 | 
		
	
		
			
			|  |  |  | res = rule.service(wxMessage); | 
		
	
		
			
			|  |  |  | if (!rule.reEnter) { | 
		
	
		
			
			|  |  |  | break; | 
		
	
		
			
			|  |  |  | // 返回最后一个非异步的rule的执行结果 | 
		
	
		
			
			|  |  |  | if(rule.async) { | 
		
	
		
			
			|  |  |  | executorService.submit(new Runnable() { | 
		
	
		
			
			|  |  |  | public void run() { | 
		
	
		
			
			|  |  |  | rule.service(wxMessage); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | }); | 
		
	
		
			
			|  |  |  | } else { | 
		
	
		
			
			|  |  |  | res = rule.service(wxMessage); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | return res; | 
		
	
	
		
			
				|  |  | 
 |