variable sessions multiple management example data close and spring-boot redis spring-session

sessions - No se puede capturar el evento SessionDestroyed en Spring Redis Session+Spring boot environment



spring session management example (0)

Tengo un proyecto de Spring Boot con Spring Session respaldado por Redis. Estoy intentando capturar el evento de sesiónDestroyed para poder realizar una limpieza.

El código para capturar el evento es el siguiente, según la guía que encontré en otro lugar en Stack Overflow.

@Component public class SessionEndedListener implements ApplicationListener<SessionDestroyedEvent> { private final Logger LOGGER = LoggerFactory.getLogger(getClass()); @Override public void onApplicationEvent(SessionDestroyedEvent event) { LOGGER.info("Destroyed session: {}", event.getSessionId()); }

}

Configuré mi configuración de sesión Redis como tal

@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 120) public class RedisSessionConfig { }

Puedo ver algunos registros de Spring Redis limpiando las sesiones caducadas cada minuto como se muestra a continuación

2016-07-21 11: 07: 00,026 ==== RedisSessionExpirationPolicy.java ==== thread: pool-4-thread-1 ==== DEBUG> org.springframework.session.data.redis.RedisSessionExpirationPolicy.cleanExpiredSessions ( ) => [] (línea: 107) Las sesiones de limpieza expiran el jueves 21 de julio a las 11:07:00 EDT 2016

Pero el código que está destinado a capturar el SessionDestroyedEvent nunca se llama. ¿Que me estoy perdiendo aqui?

Tenga en cuenta que estoy probando esto con un servidor Redis local donde no hay ningún problema al configurar eventos de espacio clave como Egx.

Cuando depuré el código.

Esta declaración

if(!body.startsWith("spring:session:sessions:")) { return; }

en la clase org.springframework.session.data.redis.SessionMessageListener regresa prematuramente antes de tener la oportunidad de publicar el evento

porque el cuerpo variable tiene un valor

/xac/xed/x00/x05t/x00<spring:session:sessions:2392443d-62a9-4f8c-81f0-c0bb446eb16f

Estoy usando spring-session 1.0.2.RELEASE. ¿Hubo un error que se solucionó?