CacheKit , 缓存失效 自动更改数据库数据

zhulint 发布于 2016/09/29 11:03
阅读 311
收藏 0

需求: 手机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失效的代码, 最好不用手动请求后台接口就可以自己调用

各位大神有没有好方法?

加载中
0
JFinal
JFinal
    这个分享是否可以解决你的问题:http://www.jfinal.com/share/37
zhulint
zhulint
回复 @JFinal : 棒!
JFinal
JFinal
回复 @zhulint : 向 cache 中注册一个监听器即可
zhulint
zhulint
詹哥,不是定时器,是EhCachePlugin的缓存清除问题。 EhCachePlugin在清除缓存的时候执行sql语句。
zhulint
zhulint
詹哥,谢谢你 O(∩_∩)O
0
红薯官方
红薯官方
你的设计有问题,不应该把用户在线状态放在用户表里面,不合理!
zhulint
zhulint
要单独建一个表吗
0
红薯官方
红薯官方
用户在线列表放在缓存里面就好,缓存的有效期为session的时间,每次请求进来延长一下缓存数据的有效期
zhulint
zhulint
厉害!!!谢啦!!☆⌒(*^-゜)v
返回顶部
顶部