Commit 5803258ed7c0b8c4c092557695f29709cc05e195

Authored by Lyon
1 parent 2cb7302d

移除超时的在线用户-完成

src/main/java/cn/iocoder/dashboard/modules/system/job/auth/SysUserSessionTimeoutJob.java
... ... @@ -21,9 +21,9 @@ public class SysUserSessionTimeoutJob implements JobHandler {
21 21  
22 22 @Override
23 23 public String execute(String param) throws Exception {
24   - log.info("[execute][执行任务:{}]", "清除过期用户信息");
  24 + log.info("[execute][执行任务:{}]", "移除超时的在线用户");
25 25 long timeoutCount = sysUserSessionService.clearSessionTimeout();
26   - log.info("[execute][执行任务:{}]", "清楚过期用户信息完成" + timeoutCount);
  26 + log.info("[execute][执行任务:{}]", "移除超时的在线用户完成" + timeoutCount);
27 27 return null;
28 28 }
29 29  
... ...
src/main/java/cn/iocoder/dashboard/modules/system/service/auth/impl/SysUserSessionServiceImpl.java
... ... @@ -105,9 +105,11 @@ public class SysUserSessionServiceImpl implements SysUserSessionService {
105 105  
106 106 @Override
107 107 public long clearSessionTimeout() {
  108 + // 获取db里已经超时的用户列表
108 109 Long timeoutCount = 0L;
109   - List<SysUserSessionDO> sessionDOS = userSessionMapper.selectSessionTimeout();
110   - for (SysUserSessionDO sessionDO : sessionDOS) {
  110 + List<SysUserSessionDO> sessionTimeoutDOS = userSessionMapper.selectSessionTimeout();
  111 + for (SysUserSessionDO sessionDO : sessionTimeoutDOS) {
  112 + // 确认已经超时,移出在线用户列表
111 113 if (loginUserRedisDAO.get(sessionDO.getId()) == null) {
112 114 timeoutCount += userSessionMapper.deleteById(sessionDO.getId());
113 115 }
... ...