From 04a1bfa329a6de22f4f0983d86a50e291f6d80bf Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期五, 15 十二月 2023 16:25:05 +0800 Subject: [PATCH] 优化事务释放逻辑 --- src/main/java/com/genersoft/iot/vmp/gb28181/session/VideoStreamSessionManager.java | 15 +++++++++++++-- 1 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/session/VideoStreamSessionManager.java b/src/main/java/com/genersoft/iot/vmp/gb28181/session/VideoStreamSessionManager.java index c46e38a..1c00dc3 100755 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/session/VideoStreamSessionManager.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/session/VideoStreamSessionManager.java @@ -117,8 +117,19 @@ } public void remove(String deviceId, String channelId, String stream) { - SsrcTransaction ssrcTransaction = getSsrcTransaction(deviceId, channelId, null, stream); - if (ssrcTransaction == null) { + List<SsrcTransaction> ssrcTransactionList = getSsrcTransactionForAll(deviceId, channelId, null, stream); + if (ssrcTransactionList == null || ssrcTransactionList.isEmpty()) { + return; + } + for (SsrcTransaction ssrcTransaction : ssrcTransactionList) { + redisTemplate.delete(VideoManagerConstants.MEDIA_TRANSACTION_USED_PREFIX + userSetting.getServerId() + "_" + + deviceId + "_" + channelId + "_" + ssrcTransaction.getCallId() + "_" + ssrcTransaction.getStream()); + } + } + + public void removeByCallId(String deviceId, String channelId, String callId) { + SsrcTransaction ssrcTransaction = getSsrcTransaction(deviceId, channelId, callId, null); + if (ssrcTransaction == null ) { return; } redisTemplate.delete(VideoManagerConstants.MEDIA_TRANSACTION_USED_PREFIX + userSetting.getServerId() + "_" -- Gitblit v1.8.0