Skip to content

Commit c5b9d56

Browse files
committed
issue binarywang#47 同步规则同步执行,异步规则异步执行
1 parent f4dc810 commit c5b9d56

File tree

2 files changed

+18
-34
lines changed

2 files changed

+18
-34
lines changed

weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpMessageRouter.java

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -87,25 +87,17 @@ public WxCpXmlOutMessage route(final WxCpXmlMessage wxMessage) {
8787
return null;
8888
}
8989

90-
if (matchRules.get(0).async) {
91-
// 只要第一个是异步的,那就异步执行
92-
// 在另一个线程里执行
93-
executorService.submit(new Runnable() {
94-
public void run() {
95-
for (final Rule rule : matchRules) {
96-
rule.service(wxMessage);
97-
}
98-
}
99-
});
100-
return null;
101-
}
102-
10390
WxCpXmlOutMessage res = null;
10491
for (final Rule rule : matchRules) {
105-
// 返回最后一个匹配规则的结果
106-
res = rule.service(wxMessage);
107-
if (!rule.reEnter) {
108-
break;
92+
// 返回最后一个非异步的rule的执行结果
93+
if(rule.async) {
94+
executorService.submit(new Runnable() {
95+
public void run() {
96+
rule.service(wxMessage);
97+
}
98+
});
99+
} else {
100+
res = rule.service(wxMessage);
109101
}
110102
}
111103
return res;

weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMessageRouter.java

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -87,25 +87,17 @@ public WxMpXmlOutMessage route(final WxMpXmlMessage wxMessage) {
8787
return null;
8888
}
8989

90-
if (matchRules.get(0).async) {
91-
// 只要第一个是异步的,那就异步执行
92-
// 在另一个线程里执行
93-
executorService.execute(new Runnable() {
94-
public void run() {
95-
for (final Rule rule : matchRules) {
96-
rule.service(wxMessage);
97-
}
98-
}
99-
});
100-
return null;
101-
}
102-
10390
WxMpXmlOutMessage res = null;
10491
for (final Rule rule : matchRules) {
105-
// 返回最后一个匹配规则的结果
106-
res = rule.service(wxMessage);
107-
if (!rule.reEnter) {
108-
break;
92+
// 返回最后一个非异步的rule的执行结果
93+
if(rule.async) {
94+
executorService.submit(new Runnable() {
95+
public void run() {
96+
rule.service(wxMessage);
97+
}
98+
});
99+
} else {
100+
res = rule.service(wxMessage);
109101
}
110102
}
111103
return res;

0 commit comments

Comments
 (0)