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

This commit is contained in:
Daniel Qian 2014-12-09 12:10:19 +08:00
parent f4dc81066f
commit c5b9d568e5
2 changed files with 18 additions and 34 deletions

View File

@ -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) {
// 返回最后一个匹配规则的结果
// 返回最后一个非异步的rule的执行结果
if(rule.async) {
executorService.submit(new Runnable() {
public void run() {
rule.service(wxMessage);
}
});
} else {
res = rule.service(wxMessage);
if (!rule.reEnter) {
break;
}
}
return res;

View File

@ -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) {
// 返回最后一个匹配规则的结果
// 返回最后一个非异步的rule的执行结果
if(rule.async) {
executorService.submit(new Runnable() {
public void run() {
rule.service(wxMessage);
}
});
} else {
res = rule.service(wxMessage);
if (!rule.reEnter) {
break;
}
}
return res;