Ver Fonte

磁盘bug修改

jingyuanchao há 10 meses atrás
pai
commit
c58d860d56

+ 1 - 1
soc-common/soc-common-redis/src/main/java/com/xunmei/common/redis/enums/RedisDelayQueueEnum.java

@@ -14,7 +14,7 @@ import lombok.NoArgsConstructor;
 public enum RedisDelayQueueEnum {
 
     WEBSOCKET_MSG_RETRY("WEBSOCKET_MSG_RETRY","websocket消息重试队列", "iotWebsocketMsgServiceImpl"),
-    DEVICE_SYNC_STATUS_MONITOR("DEVICE_SYNC_STATUS_MONITOR","设备同步状态监测", "IotDeviceInfoServiceImpl"),
+    DEVICE_SYNC_STATUS_MONITOR("DEVICE_SYNC_STATUS_MONITOR","设备同步状态监测", "iotDeviceInfoServiceImpl"),
 
     ;
 

+ 5 - 4
soc-modules/soc-modules-host/src/main/java/com/xunmei/host/alarm/service/impl/IotAlarmDataServiceImpl.java

@@ -436,22 +436,23 @@ public class IotAlarmDataServiceImpl extends ServiceImpl<IotAlarmDataMapper, Iot
                 .isNull(IotAlarmData::getEndTime);
         List<IotAlarmData> datas = baseMapper.selectList(qw);
 
-        for (DiskVo diskVo : diskVos) {
+        diskVos.stream().max(Comparator.comparing(DiskVo::getState)).ifPresent(diskVo -> {
             //硬盘状态。0:正常,1:异常
             Integer state = diskVo.getState();
             if (state == 1 && datas.size() == 0) {
                 //报警,且没有告警数据
                 IotAlarmData alarmDisk = createAlarmDisk(equipmentName, diskVo.getName(), iotDvrDisk.getOrgId(), deviceInfo.getId());
                 this.save(alarmDisk);
-                LogUtils.STATUS_INFO_DISKS.info("磁盘状态: {}产生告警信息", alarmDisk.getDeviceName());
+                LogUtils.STATUS_INFO_DISKS.info("监控主机:{} 硬盘号:{} 状态: {} 产生告警信息", deviceInfo.getDeviceName(), diskVo.getIndex(), diskVo.getState());
             }
-
             if (state == 0 && datas.size() > 0) {
                 IotAlarmData iotAlarmData = datas.get(0);
                 iotAlarmData.setEndTime(LocalDateTime.now());
                 this.updateById(iotAlarmData);
+                LogUtils.STATUS_INFO_DISKS.info("监控主机:{} 硬盘号:{} 状态: {} 告警恢复", deviceInfo.getDeviceName(), diskVo.getIndex(), diskVo.getState());
             }
-        }
+        });
+
     }
 
     private IotAlarmData createAlarmDisk(String equipmentName, String diskName, long orgId, Long deviceId) {

+ 5 - 3
soc-modules/soc-modules-host/src/main/java/com/xunmei/host/north/controller/HostController.java

@@ -159,15 +159,13 @@ public class HostController {
             WebSocketSession sessions = WebSocketSessionHolder.getSessions(token);
             if (sessions != null && sessions.isOpen()) {
                 list.add(token);
-            } else {
-                WebSocketSessionHolder.removeSession(token);
             }
         }
         return AjaxResult.success(list);
     }
 
     @GetMapping("/getOnlineWs")
-    List<String>  getOnlineWs() {
+    List<String> getOnlineWs() {
         Set<String> set = WebSocketSessionHolder.getSessionsAll();
         List<String> list = new ArrayList<>();
         for (String token : set) {
@@ -175,6 +173,10 @@ public class HostController {
             if (sessions != null && sessions.isOpen()) {
                 list.add(token);
             }
+            if (sessions == null || !sessions.isOpen()) {
+                WebSocketSessionHolder.removeSession(token);
+                LogUtils.SOCKET_CONNECT_STATUS_CHECK.info("发现存在WS链接断开但会话存在的链接,移除会话:{}", token);
+            }
         }
         return list;
     }

+ 1 - 0
soc-modules/soc-modules-host/src/main/java/com/xunmei/host/server/service/impl/IotServerInfoServiceImpl.java

@@ -184,6 +184,7 @@ public class IotServerInfoServiceImpl extends ServiceImpl<IotServerInfoMapper, I
                 }
                 LogUtils.SOCKET_CONNECT_STATUS_CHECK.info("获取当前系统在线的WS链接:{}", JacksonUtils.toJSONString(list));
             } catch (RestClientException e) {
+                LogUtils.SOCKET_CONNECT_STATUS_CHECK.info("获取当前系统在线的WS链接,发生异常:{}", e);
                 throw new RuntimeException(e);
             }
             if (list == null) {