如何让你的程序的access_token一直有效?(高并发场景下)?
解决方案业务逻辑
一、存数据库
建个表access_token id主键、 token、 操作时间
取access_token 查询表的数据是否存在,如果这条数据存在,用当前时间-数据库操作时间>7200秒
如果大于7200秒,就去查询微信服务器获取最新token,更新 MYSQL表的记录数。
如果小于7200秒,直接就使用即可。
二、存文件
AccessToken类–》FileInputStream/FileOutputStream(序列化/反序列化流程)
三、存Redis
1、先判断Redis 中key(access_token)是否存在
如果存在,直接取出来用即可。
如果不存在,–》微信服务器重新生成access_token,存入Redis key,并设置过期时间2小时。
四、存内存:
声明一个变量。用来存取access_token值。
创建一个线程,就是用来存取access_token线程。 线程给个休眠时间–》sleep(7200秒)。
当项目启动的时候,对该线程运行start();