一天两问!第二问, MQ 的问题!

2019-09-27 16:44:17 +08:00
 571726193
业务场景:之前也发过,就是我司是做微信三方平台对接的,商户可以通过我们的平台快速创建小程序,部分主要业务需要用到商户授权之后的一个 token ,官方微信表明 7200s 有效,当时考虑到以后平台可能会有多个商户,既然有多个商户肯定对应的就有多个 token,就没有考虑用定时任务去做刷新,用的延时队列,队列长度限制是多大,目前不到 10 个商户,很少,看似不影响啥。网上也了解了一点,会有队列溢出的情况,所以请教一下各位带佬,如何解决此类问题。或者不用队列,用到了直接去微信哪里掉接口去拿?但是这个不是影响主线程的响应时间吗?
3630 次点击
所在节点    Java
4 条回复
mxy940127
2019-09-27 16:50:41 +08:00
acess_token 建议专门做一个缓存服务维护 用到就调接口获取的话 使用量上来以后 会超过上限
571726193
2019-09-27 16:59:12 +08:00
@mxy940127 现在 mq 用的不太熟练,不敢上,我的意思是 存 reids 里 时间短一点,取不到了再去 微信那边调。感觉这样比用 mq 稳一点
zhady009
2019-09-27 17:45:45 +08:00
吐槽一下这微信的 token 有效期也太短了吧

我一般是这样做的 用户登陆完 存放 token 信息到表中 或者 update 一下

然后放入 redis 中 调用微信 api 前从缓存获取过期时间 过期了就 refresh 一下

refresh token 也过期了就让商户重新登录 这个自己看着办

再弄个定时任务 刷新一天内即将过期的 token

其实要不要刷新 token 主要是看用户长期不登录了 你还要不要从他那边获取一些数据

不然你就让他用的时候保证有效就行了
571726193
2019-09-27 18:12:46 +08:00
@zhady009 谢谢老哥

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/604871

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX