diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpMessageRouter.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpMessageRouter.java index 897702ac..bf5bf86e 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpMessageRouter.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpMessageRouter.java @@ -87,25 +87,17 @@ public class WxCpMessageRouter { return null; } - if (matchRules.get(0).async) { - // 只要第一个是异步的,那就异步执行 - // 在另一个线程里执行 - executorService.submit(new Runnable() { - public void run() { - for (final Rule rule : matchRules) { - rule.service(wxMessage); - } - } - }); - return null; - } - WxCpXmlOutMessage 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; diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMessageRouter.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMessageRouter.java index f4122fdc..e904e41b 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMessageRouter.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMessageRouter.java @@ -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;