From c429a34e5390b0245da276c2c03a6116822167c3 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期一, 08 五月 2023 17:18:08 +0800 Subject: [PATCH] 修复国标视频点播三种级联并发点播和录像下载的问题 --- src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java | 16 +++++++++++++++- 1 files changed, 15 insertions(+), 1 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java index 48de5d2..b171c71 100644 --- a/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java @@ -12,6 +12,7 @@ import com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.response.cmd.CatalogResponseMessageHandler; import com.genersoft.iot.vmp.service.IDeviceChannelService; import com.genersoft.iot.vmp.service.IDeviceService; +import com.genersoft.iot.vmp.service.IInviteStreamService; import com.genersoft.iot.vmp.service.IMediaServerService; import com.genersoft.iot.vmp.storager.IRedisCatchStorage; import com.genersoft.iot.vmp.storager.dao.DeviceChannelMapper; @@ -59,6 +60,9 @@ private IRedisCatchStorage redisCatchStorage; @Autowired + private IInviteStreamService inviteStreamService; + + @Autowired private DeviceMapper deviceMapper; @Autowired @@ -97,7 +101,7 @@ String now = DateUtil.getNow(); if (deviceInRedis != null && deviceInDb == null) { // redis 瀛樺湪鑴忔暟鎹� - redisCatchStorage.clearCatchByDeviceId(device.getDeviceId()); + inviteStreamService.clearInviteInfo(device.getDeviceId()); } device.setUpdateTime(now); if (device.getKeepaliveIntervalTime() == 0) { @@ -165,6 +169,11 @@ String registerExpireTaskKey = VideoManagerConstants.REGISTER_EXPIRE_TASK_KEY_PREFIX + device.getDeviceId(); // 濡傛灉绗竴娆℃敞鍐岄偅涔堝繀椤诲湪60 * 3鏃堕棿鍐呮敹鍒颁竴涓績璺筹紝鍚﹀垯璁惧绂荤嚎 dynamicTask.startDelay(registerExpireTaskKey, ()-> offline(device.getDeviceId(), "棣栨娉ㄥ唽鍚庢湭鑳芥敹鍒板績璺�"), device.getKeepaliveIntervalTime() * 1000 * 3); + if (userSetting.getDeviceStatusNotify()) { + // 鍙戦�乺edis娑堟伅 + redisCatchStorage.sendDeviceOrChannelStatus(device.getDeviceId(), null, true); + } + } @Override @@ -193,6 +202,11 @@ // 绉婚櫎璁㈤槄 removeCatalogSubscribe(device); removeMobilePositionSubscribe(device); + if (userSetting.getDeviceStatusNotify()) { + // 鍙戦�乺edis娑堟伅 + redisCatchStorage.sendDeviceOrChannelStatus(device.getDeviceId(), null, false); + } + } @Override -- Gitblit v1.8.0