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

View File

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