Explorar o código

fix 媒体设备集群下线监听

18339543638 %!s(int64=3) %!d(string=hai) anos
pai
achega
f408f7733d

+ 14 - 11
jetlinks-manager/media-manager/src/main/java/org/jetlinks/community/media/service/LocalMediaDeviceService.java

@@ -234,16 +234,19 @@ public class LocalMediaDeviceService extends GenericReactiveCrudService<MediaDev
 
         //将本节点信息下线
         Set<Object> deviceIds = redisUtil.members("session_" + serverId);
-        Mono.zip(this.createUpdate()
-                .where(MediaDevice::getState,DeviceState.online)
-                .in(MediaDevice::getId,deviceIds)
-                .set(MediaDevice::getState,DeviceState.offline)
-                .execute(),
-            deviceChannelService.createUpdate()
-                .set(MediaDeviceChannel::getStatus,DeviceState.offline)
-                .in(MediaDeviceChannel::getDeviceId,deviceIds)
-                .execute()
-        )
-            .subscribe();
+        if(CollectionUtil.isNotEmpty(deviceIds)){
+            Mono.zip(this.createUpdate()
+                    .where(MediaDevice::getState,DeviceState.online)
+                    .in(MediaDevice::getId,deviceIds)
+                    .set(MediaDevice::getState,DeviceState.offline)
+                    .execute(),
+                deviceChannelService.createUpdate()
+                    .set(MediaDeviceChannel::getStatus,DeviceState.offline)
+                    .in(MediaDeviceChannel::getDeviceId,deviceIds)
+                    .execute()
+            )
+                .subscribe();
+        }
+
     }
 }