|  |  | 
 |  |  | package com.genersoft.iot.vmp.conf.runner; | 
 |  |  |  | 
 |  |  | import com.genersoft.iot.vmp.conf.UserSetup; | 
 |  |  | import com.genersoft.iot.vmp.gb28181.bean.Device; | 
 |  |  | import com.genersoft.iot.vmp.service.IDeviceService; | 
 |  |  | import com.genersoft.iot.vmp.storager.IRedisCatchStorage; | 
 |  |  | import com.genersoft.iot.vmp.storager.IVideoManagerStorager; | 
 |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
 |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private IRedisCatchStorage redisCatchStorage; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private UserSetup userSetup; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private IDeviceService deviceService; | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public void run(String... args) throws Exception { | 
 |  |  |         // 读取redis没有心跳信息的则设置为离线,等收到下次心跳设置为在线 | 
 |  |  | 
 |  |  |         List<String> onlineForAll = redisCatchStorage.getOnlineForAll(); | 
 |  |  |         for (String deviceId : onlineForAll) { | 
 |  |  |             storager.online(deviceId); | 
 |  |  |             Device device = redisCatchStorage.getDevice(deviceId); | 
 |  |  |             if (device != null && device.getSubscribeCycleForCatalog() > 0) { | 
 |  |  |                 // 查询在线设备那些开启了订阅,为设备开启定时的目录订阅 | 
 |  |  |                 deviceService.addCatalogSubscribe(device); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         // 重置cseq计数 | 
 |  |  |         redisCatchStorage.resetAllCSEQ(); | 
 |  |  |  | 
 |  |  |         // TODO 查询在线设备那些开启了订阅,为设备开启定时的目录订阅 | 
 |  |  |  | 
 |  |  |     } | 
 |  |  | } |