private void startSessionTimer(final ChannelHandlerContext ctx, final SockJsSession session) { if (sessionTimer == null) { sessionTimer = ctx.executor().scheduleAtFixedRate(new Runnable() { @Override public void run() { final long now = TimeUnit.NANOSECONDS.toMillis(System.nanoTime()); if (isInUse()) { return; } if (session.timestamp() + session.config().sessionTimeout() < now) { final SockJsSession removed = sessions.remove(session.sessionId()); session.connectionContext().close(); sessionTimer.cancel(true); heartbeatFuture.cancel(true); if (logger.isDebugEnabled()) { logger.debug("Removed {} from map[{}]", removed.sessionId(), sessions.size()); } } } }, session.config().sessionTimeout(), session.config().sessionTimeout(), TimeUnit.MILLISECONDS); } }
private void startSessionTimer(final ChannelHandlerContext ctx, final SockJsSession session) { if (sessionTimer == null) { sessionTimer = ctx.executor().scheduleAtFixedRate(new Runnable() { @Override public void run() { final long now = TimeUnit.NANOSECONDS.toMillis(System.nanoTime()); if (isInUse()) { return; } if (session.timestamp() + session.config().sessionTimeout() < now) { final SockJsSession removed = sessions.remove(session.sessionId()); session.connectionContext().close(); sessionTimer.cancel(true); heartbeatFuture.cancel(true); if (logger.isDebugEnabled()) { logger.debug("Removed {} from map[{}]", removed.sessionId(), sessions.size()); } } } }, session.config().sessionTimeout(), session.config().sessionTimeout(), TimeUnit.MILLISECONDS); } }
@Override public void run() { final long now = TimeUnit.NANOSECONDS.toMillis(System.nanoTime()); if (isInUse()) { return; } if (session.timestamp() + session.config().sessionTimeout() < now) { final SockJsSession removed = sessions.remove(session.sessionId()); session.connectionContext().close(); sessionTimer.cancel(true); heartbeatFuture.cancel(true); if (logger.isDebugEnabled()) { logger.debug("Removed {} from map[{}]", removed.sessionId(), sessions.size()); } } } }, session.config().sessionTimeout(), session.config().sessionTimeout(), TimeUnit.MILLISECONDS);
@Override public void run() { final long now = TimeUnit.NANOSECONDS.toMillis(System.nanoTime()); if (isInUse()) { return; } if (session.timestamp() + session.config().sessionTimeout() < now) { final SockJsSession removed = sessions.remove(session.sessionId()); session.connectionContext().close(); sessionTimer.cancel(true); heartbeatFuture.cancel(true); if (logger.isDebugEnabled()) { logger.debug("Removed {} from map[{}]", removed.sessionId(), sessions.size()); } } } }, session.config().sessionTimeout(), session.config().sessionTimeout(), TimeUnit.MILLISECONDS);