瀏覽代碼

issue #47 同步规则同步执行,异步规则异步执行

master
Daniel Qian 10 年之前
父節點
當前提交
c5b9d568e5
共有 2 個檔案被更改,包括 18 行新增34 行删除
  1. +9
    -17
      weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpMessageRouter.java
  2. +9
    -17
      weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMessageRouter.java

+ 9
- 17
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpMessageRouter.java 查看文件

@@ -87,25 +87,17 @@ public class WxCpMessageRouter {
return null; 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; WxCpXmlOutMessage res = null;
for (final Rule rule : matchRules) { 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; return res;


+ 9
- 17
weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMessageRouter.java 查看文件

@@ -87,25 +87,17 @@ public class WxMpMessageRouter {
return null; 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; WxMpXmlOutMessage res = null;
for (final Rule rule : matchRules) { 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; return res;


Loading…
取消
儲存