|  |  | 
 |  |  | package com.genersoft.iot.vmp.gb28181.event.offline;
 | 
 |  |  | 
 | 
 |  |  | import org.slf4j.Logger;
 | 
 |  |  | import org.slf4j.LoggerFactory;
 | 
 |  |  | import org.springframework.beans.factory.annotation.Autowired;
 | 
 |  |  | import org.springframework.data.redis.connection.Message;
 | 
 |  |  | import org.springframework.data.redis.listener.KeyExpirationEventMessageListener;
 | 
 |  |  | 
 |  |  | 
 | 
 |  |  | /**    
 | 
 |  |  |  * @Description:设备心跳超时监听,借助redis过期特性,进行监听,监听到说明设备心跳超时,发送离线事件
 | 
 |  |  |  * @author: songww
 | 
 |  |  |  * @author: swwheihei
 | 
 |  |  |  * @date:   2020年5月6日 上午11:35:46     
 | 
 |  |  |  */
 | 
 |  |  | @Component
 | 
 |  |  | public class KeepliveTimeoutListener extends KeyExpirationEventMessageListener {
 | 
 |  |  | 
 | 
 |  |  |     private Logger logger = LoggerFactory.getLogger(KeepliveTimeoutListener.class);
 | 
 |  |  | 
 | 
 |  |  |    @Autowired
 | 
 |  |  |    private EventPublisher publisher;
 | 
 |  |  | 
 |  |  |         //  获取失效的key
 | 
 |  |  |         String expiredKey = message.toString();
 | 
 |  |  |         if(!expiredKey.startsWith(VideoManagerConstants.KEEPLIVEKEY_PREFIX)){
 | 
 |  |  |            System.out.println("收到redis过期监听,但开头不是"+VideoManagerConstants.KEEPLIVEKEY_PREFIX+",忽略");
 | 
 |  |  |            logger.debug("收到redis过期监听,但开头不是"+VideoManagerConstants.KEEPLIVEKEY_PREFIX+",忽略");
 | 
 |  |  |            return;
 | 
 |  |  |         }
 | 
 |  |  |         
 |