CacheKit , 缓存失效 自动更改数据库数据
需求: 手机app在线用户心跳包请求数据库在线用户数据
提问:token失效的时候,能否自动更改该用户的数据库在线状态?
token没有失效的代码:
public static boolean verifyUserToken (String userToken){ boolean verReturn = false; Map<String, Object> ret = new HashMap<String, Object>(); /* true:登录没有失效 */
String cacheUserToken = (null == CacheKit.get("UserTokenFilter", userToken)?
"":CacheKit.get("UserTokenFilter", userToken)).toString();
if (userToken.equals(cacheUserToken)){ String userId[] = userToken.split(":");
new ERPUser().findById(userId[0]).set("onLine", "1").update();
verReturn = true; } else { verReturn = false;
}
return verReturn; }token失效的代码, 最好不用手动请求后台接口就可以自己调用
各位大神有没有好方法?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
厉害!!!谢啦!!☆⌒(*^-゜)v
用户在线列表放在缓存里面就好,缓存的有效期为session的时间,每次请求进来延长一下缓存数据的有效期
要单独建一个表吗
你的设计有问题,不应该把用户在线状态放在用户表里面,不合理!
詹哥,谢谢你 O(∩_∩)O
詹哥,不是定时器,是EhCachePlugin的缓存清除问题。 EhCachePlugin在清除缓存的时候执行sql语句。
回复
向 cache 中注册一个监听器即可
回复
@JFinal : 棒!
这个分享是否可以解决你的问题:
http://www.jfinal.com/share/37