🐛 #2999【小程序/公众号】修复异步消息路由报错的问题

This commit is contained in:
heiheihei
2023-05-04 16:34:48 +08:00
committed by GitHub
parent 6e93062104
commit de0266b5e1
2 changed files with 9 additions and 2 deletions

View File

@@ -128,16 +128,20 @@ public class WxMaMessageRouter {
if (matchRules.size() == 0) {
return null;
}
String miniAppId = WxMaConfigHolder.get();
final List<Future<?>> futures = new ArrayList<>();
WxMaXmlOutMessage result = null;
for (final WxMaMessageRouterRule rule : matchRules) {
// 返回最后一个非异步的rule的执行结果
if (rule.isAsync()) {
//获取当前线程使用的实际appId兼容只有一个appId且未显式设置当前使用的appId的情况
String miniAppId = this.wxMaService.getWxMaConfig().getAppid();
futures.add(
this.executorService.submit(() -> {
//子线程中设置实际的appId
this.wxMaService.switchoverTo(miniAppId);
rule.service(wxMessage, context, WxMaMessageRouter.this.wxMaService, WxMaMessageRouter.this.sessionManager, WxMaMessageRouter.this.exceptionHandler);
WxMaConfigHolder.remove();
})
);
} else {