binarywang / WxJava

微信开发 Java SDK ,支持包括微信支付,开放平台,小程序,企业微信,视频号,公众号等的后端开发
Apache License 2.0
29.9k stars 8.67k forks source link

多公众号时,开启线程处理异步任务时,丢失当前请求公众号的信息 #1739

Closed zbolun closed 4 years ago

zbolun commented 4 years ago

简要描述

简单概括描述下你所遇到的问题。

模块版本情况

详细描述

多公众号时,异步任务执行时会丢失当前公众号信息,当前公众号信息是由WxMpConfigStorageHolder ThreadLocal变量维护,在开启新线程执行异步 WxMpMessageHandler时,WxMpConfigStorageHolder.get() = default,而不是请求过来的公众号appId

日志

binarywang commented 4 years ago

这种问题确实不太好解决

binarywang commented 4 years ago

建议开启异步线程时,将当前的appid等信息传过去,也只有这样解决比较合适了

YooLin commented 2 years ago

https://github.com/alibaba/transmittable-thread-local 可以改用这个工具来存储当前线程的公众号appId

rabbitlhf commented 2 years ago

我直接使用 context 来处理算了