处理服务重启或设备重新上线时的订阅,优化通道导入重复的处理
This commit is contained in:
@@ -3,7 +3,6 @@ package com.genersoft.iot.vmp.conf;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
|
||||
import org.springframework.scheduling.support.CronTrigger;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Map;
|
||||
@@ -40,4 +39,8 @@ public class DynamicTask {
|
||||
}
|
||||
}
|
||||
|
||||
public boolean contains(String key) {
|
||||
return futureMap.get(key) != null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
package com.genersoft.iot.vmp.conf.runner;
|
||||
|
||||
import com.genersoft.iot.vmp.common.VideoManagerConstants;
|
||||
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;
|
||||
@@ -28,6 +29,9 @@ public class SipDeviceRunner implements CommandLineRunner {
|
||||
@Autowired
|
||||
private UserSetup userSetup;
|
||||
|
||||
@Autowired
|
||||
private IDeviceService deviceService;
|
||||
|
||||
@Override
|
||||
public void run(String... args) throws Exception {
|
||||
// 读取redis没有心跳信息的则设置为离线,等收到下次心跳设置为在线
|
||||
@@ -36,9 +40,15 @@ public class SipDeviceRunner implements CommandLineRunner {
|
||||
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 查询在线设备那些开启了订阅,为设备开启定时的目录订阅
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user