@@ -130,6 +130,16 @@ public WxMpMessageRouterRule rule() {
130130 * 处理微信消息
131131 */
132132 public WxMpXmlOutMessage route (final WxMpXmlMessage wxMessage , final Map <String , Object > context ) {
133+ return route (wxMessage , context );
134+ }
135+ /**
136+ * 处理微信消息
137+ */
138+ public WxMpXmlOutMessage route (final WxMpXmlMessage wxMessage , final Map <String , Object > context , WxMpService wxMpService ) {
139+ if (wxMpService == null ){
140+ wxMpService = this .wxMpService ;
141+ }
142+ final WxMpService mpService = wxMpService ;
133143 if (isMsgDuplicated (wxMessage )) {
134144 // 如果是重复消息,那么就不做处理
135145 return null ;
@@ -159,12 +169,12 @@ public WxMpXmlOutMessage route(final WxMpXmlMessage wxMessage, final Map<String,
159169 this .executorService .submit (new Runnable () {
160170 @ Override
161171 public void run () {
162- rule .service (wxMessage , context , WxMpMessageRouter . this . wxMpService , WxMpMessageRouter .this .sessionManager , WxMpMessageRouter .this .exceptionHandler );
172+ rule .service (wxMessage , context , mpService , WxMpMessageRouter .this .sessionManager , WxMpMessageRouter .this .exceptionHandler );
163173 }
164174 })
165175 );
166176 } else {
167- res = rule .service (wxMessage , context , this . wxMpService , this .sessionManager , this .exceptionHandler );
177+ res = rule .service (wxMessage , context , mpService , this .sessionManager , this .exceptionHandler );
168178 // 在同步操作结束,session访问结束
169179 this .log .debug ("End session access: async=false, sessionId={}" , wxMessage .getFromUser ());
170180 sessionEndAccess (wxMessage );
0 commit comments