用到Redis。
最初的逻辑:代码里判定只要token失效就会取toekn更新到Redis中。
问题:显而易见,分布式并行后,可能同时有两台或以上同时更新,导致其他设备取回的token失效,然后循环往复,将API次数耗尽。
经浩哥指点优化后的逻辑:
抽离token更新逻辑到定时脚本。脚本启动后,使用Redis的setNx作为分布锁,确保只有一台设备进入token校验更新逻辑。当逻辑走完后,移除锁标识。
核心思路:大家都抢,冲突,那么就用加锁的方式杜绝并行的发生。
如您从本文得到了有价值的信息或帮助,请考虑扫描文末二维码捐赠和鼓励。
如本文对您有用,捐赠和留言 将是对我最好的支持~(捐赠可转为站内积分)
如愿意,请向朋友推荐本站,谢谢。
尊重他人劳动成果。转载请务必附上原文链接,我将感激不尽。
留言