diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/DeviceServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/DeviceServiceImpl.java index 7e8aec7e5..24323cb5d 100755 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/DeviceServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/DeviceServiceImpl.java @@ -397,6 +397,9 @@ public class DeviceServiceImpl implements IDeviceService, CommandLineRunner { } List realDeviceList = new ArrayList<>(); for (Device device : deviceList) { + if (device == null) { + continue; + } log.info("[设备离线] device:{}, 心跳间隔: {},心跳超时次数: {}, 上次心跳时间:{}, 上次注册时间: {}", device.getDeviceId(), device.getHeartBeatInterval(), device.getHeartBeatCount(), device.getKeepaliveTime(), device.getRegisterTime()); device.setOnLine(false); diff --git a/src/main/java/com/genersoft/iot/vmp/media/event/mediaServer/MediaServerChangeEvent.java b/src/main/java/com/genersoft/iot/vmp/media/event/mediaServer/MediaServerChangeEvent.java index ecbe332b3..df257c774 100644 --- a/src/main/java/com/genersoft/iot/vmp/media/event/mediaServer/MediaServerChangeEvent.java +++ b/src/main/java/com/genersoft/iot/vmp/media/event/mediaServer/MediaServerChangeEvent.java @@ -1,12 +1,14 @@ package com.genersoft.iot.vmp.media.event.mediaServer; import com.genersoft.iot.vmp.media.bean.MediaServer; +import lombok.Getter; import org.springframework.context.ApplicationEvent; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +@Getter public class MediaServerChangeEvent extends ApplicationEvent { public MediaServerChangeEvent(Object source) { @@ -15,10 +17,6 @@ public class MediaServerChangeEvent extends ApplicationEvent { private List mediaServerItemList; - public List getMediaServerItemList() { - return mediaServerItemList; - } - public void setMediaServerItemList(List mediaServerItemList) { this.mediaServerItemList = mediaServerItemList; } diff --git a/src/main/java/com/genersoft/iot/vmp/media/service/impl/MediaServerServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/media/service/impl/MediaServerServiceImpl.java index 7b6e0aa7d..d3c1c3b64 100755 --- a/src/main/java/com/genersoft/iot/vmp/media/service/impl/MediaServerServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/media/service/impl/MediaServerServiceImpl.java @@ -33,6 +33,7 @@ import com.genersoft.iot.vmp.utils.redis.RedisUtil; import com.genersoft.iot.vmp.vmanager.bean.ErrorCode; import com.genersoft.iot.vmp.vmanager.bean.WVPResult; import jakarta.validation.constraints.NotNull; +import lombok.Synchronized; import lombok.extern.slf4j.Slf4j; import okhttp3.OkHttpClient; import okhttp3.Request; diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaServerStatusManager.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaServerStatusManager.java index fd0d7d664..b0693c89d 100644 --- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaServerStatusManager.java +++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaServerStatusManager.java @@ -36,6 +36,7 @@ import java.util.concurrent.ConcurrentHashMap; @Component public class ZLMMediaServerStatusManager { + private final Map offlineZlmPrimaryMap = new ConcurrentHashMap<>(); private final Map offlineZlmsecondaryMap = new ConcurrentHashMap<>(); private final Map offlineZlmTimeMap = new ConcurrentHashMap<>(); @@ -80,7 +81,6 @@ public class ZLMMediaServerStatusManager { log.info("[ZLM-添加待上线节点] ID:{}", mediaServerItem.getId()); offlineZlmPrimaryMap.put(mediaServerItem.getId(), mediaServerItem); offlineZlmTimeMap.put(mediaServerItem.getId(), System.currentTimeMillis()); - execute(); } } @@ -183,6 +183,8 @@ public class ZLMMediaServerStatusManager { MediaServer mediaServerInDb = mediaServerService.getOne(mediaServer.getId()); if (mediaServerInDb == null || !mediaServerInDb.isStatus()) { log.info("[ZLM-连接成功] ID:{}, 地址: {}:{}", mediaServer.getId(), mediaServer.getIp(), mediaServer.getHttpPort()); + offlineZlmPrimaryMap.remove(mediaServer.getId()); + offlineZlmsecondaryMap.remove(mediaServer.getId()); if (config == null) { ZLMResult> mediaServerConfig = zlmresTfulUtils.getMediaServerConfig(mediaServer); List data = mediaServerConfig.getData();