|
|
@@ -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; |
|
|
|