@JFinal 最近做了一个门禁扫码系统, 就像地铁站刷二维码一样,后台用的JFinal,
后台有记录每次进入的信息, 但发现机器很灵敏,造成进入日志记录有重复,间隔一秒,现想用new IAtom()方式检查一下10秒此人当天不能有重复记录,也就是说10秒内此人此时间段只记录一条出入日志,因工厂800多人, 想问用这种方式有没有问题,会不会由于同时创建线程太多造成服务器瘫痪?
1:用于这个功能的 ehcache 的 name 假定为 "doorLog",过期时间设置为 1 分钟
2:当用户扫码时,先去看 ehcache 的 doorLog 是否存在,如果存在则不做日志
3:如果 doorLog 不存在,则以用户 id 为 key 做一个日志,大致为:
if (CacheKit.get("doorLog", userId) == null) {
CacheKit.put("doorLog", userId, true);
log.logInfo(...) // 这里是做日志的代码
}
这里的关键就是 ehcache 中的 “doorLog" 的过期时间的配置,当过期时间一致,缓存中就没有数据了,那么前面的 if 语句就会为 true