diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/event/SipSubscribe.java b/src/main/java/com/genersoft/iot/vmp/gb28181/event/SipSubscribe.java index bd966b6f6..1ef18ca43 100755 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/event/SipSubscribe.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/event/SipSubscribe.java @@ -50,14 +50,6 @@ public class SipSubscribe { } } - public void updateTimeout(String callId) { - SipEvent sipEvent = subscribes.get(callId); - if (sipEvent != null) { - delayQueue.remove(sipEvent); - delayQueue.offer(sipEvent); - } - } - public interface Event { void response(EventResult eventResult); } diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/task/deviceStatus/DeviceStatusTaskRunner.java b/src/main/java/com/genersoft/iot/vmp/gb28181/task/deviceStatus/DeviceStatusTaskRunner.java index 46e19332b..a8e9c791c 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/task/deviceStatus/DeviceStatusTaskRunner.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/task/deviceStatus/DeviceStatusTaskRunner.java @@ -94,7 +94,10 @@ public class DeviceStatusTaskRunner { return false; } log.debug("[更新状态任务时间] 编号: {}", key); + // 如果值更改时间,如果队列中有多个元素时 超时无法出发。目前采用移除再加入的方法 + delayQueue.remove(task); task.setDelayTime(expirationTime); + delayQueue.offer(task); String redisKey = String.format("%s_%s_%s", prefix, userSetting.getServerId(), task.getDeviceId()); Duration duration = Duration.ofSeconds((expirationTime - System.currentTimeMillis())/1000); redisTemplate.expire(redisKey, duration); diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/task/deviceSubscribe/SubscribeTaskRunner.java b/src/main/java/com/genersoft/iot/vmp/gb28181/task/deviceSubscribe/SubscribeTaskRunner.java index 9e04abe87..7e70935f5 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/task/deviceSubscribe/SubscribeTaskRunner.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/task/deviceSubscribe/SubscribeTaskRunner.java @@ -94,7 +94,9 @@ public class SubscribeTaskRunner{ return false; } log.info("[更新订阅任务时间] {}, 编号: {}", task.getName(), key); + delayQueue.remove(task); task.setDelayTime(expirationTime); + delayQueue.offer(task); String redisKey = String.format("%s_%s_%s", prefix, userSetting.getServerId(), task.getKey()); Duration duration = Duration.ofSeconds((expirationTime - System.currentTimeMillis())/1000); redisTemplate.expire(redisKey, duration); diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/task/platformStatus/PlatformStatusTaskRunner.java b/src/main/java/com/genersoft/iot/vmp/gb28181/task/platformStatus/PlatformStatusTaskRunner.java index 4768fd964..a043d8507 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/task/platformStatus/PlatformStatusTaskRunner.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/task/platformStatus/PlatformStatusTaskRunner.java @@ -108,19 +108,6 @@ public class PlatformStatusTaskRunner { return task.getSipTransactionInfo(); } - public boolean updateRegisterDelay(String platformServerId, long expirationTime) { - PlatformRegisterTask task = registerSubscribes.get(platformServerId); - if (task == null) { - return false; - } - log.info("[更新平台注册任务时间] 平台上级编号: {}", platformServerId); - task.setDelayTime(expirationTime); - String redisKey = String.format("%s_%s_%s", prefix, userSetting.getServerId(), platformServerId); - Duration duration = Duration.ofSeconds((expirationTime - System.currentTimeMillis())/1000); - redisTemplate.expire(redisKey, duration); - return true; - } - public boolean containsRegister(String platformServerId) { return registerSubscribes.containsKey(platformServerId); } @@ -152,16 +139,6 @@ public class PlatformStatusTaskRunner { return true; } - public boolean updateKeepAliveDelay(String platformServerId, long expirationTime) { - PlatformKeepaliveTask task = keepaliveSubscribes.get(platformServerId); - if (task == null) { - return false; - } - log.info("[更新平台心跳任务时间] 平台上级编号: {}", platformServerId); - task.setDelayTime(expirationTime); - return true; - } - public boolean containsKeepAlive(String platformServerId) { return keepaliveSubscribes.containsKey(platformServerId); }