看了几个关于企业微信access_token的问题,因为access_token可能提前失效,官方建议根据返回的错误码再来进行获取新的access_token,当返回42001时就重新获取一遍access_token。那么如果在access_token失效的那一刻,有大量调用企业微信api的请求都返回了access_token失效的错误码,按照补偿措施,这种情况下会有大量请求去重新获取access_token,获取access_token的接口会出现频率限制的提示吗?有什么比较好的办法解决这种并发问题吗?
你好,出现频率限制这个原因一般是调用accesstoken传入的参数有错,当1小时调用接口错误达到2000次就会限制
程序猿,听说过“锁”吗?
另外你完全可以在后台任务里去定时刷新,业务层不用关心刷新的事儿,每次读取就可以了,永远都是最新的。
起了4,40 ,400,4000个协程来测,在短时间内进行如下步骤2000+次:
A) 用的错误access_token,调用获取用户信息的方法,https://qyapi.weixin.qq.com/cgi-bin/user/get
B)获取access_token,https://qyapi.weixin.qq.com/cgi-bin/gettoken
C)用获取到的access_token,调用获取用户信息的方法,https://qyapi.weixin.qq.com/cgi-bin/user/get
发现,只有400和4000个协程的时候,C)会偶尔报 45033(接口并发调用超过限制的错误码),并不会直接限制1小时。
所以,出现频率限制之后,并不是限制1小时才能恢复。这是为什么呢?你们不是按照小时来结算的?