648540858
2022-11-29 ef6693aabbbf12e83d09ad8749f6e60faacc012d
src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisPushStreamStatusMsgListener.java
@@ -29,8 +29,6 @@
    private final static Logger logger = LoggerFactory.getLogger(RedisPushStreamStatusMsgListener.class);
    private boolean taskQueueHandlerRun = false;
    @Autowired
    private IRedisCatchStorage redisCatchStorage;
@@ -50,14 +48,15 @@
    @Override
    public void onMessage(Message message, byte[] bytes) {
        boolean isEmpty = taskQueue.isEmpty();
        logger.warn("[REDIS消息-推流设备状态变化]: {}", new String(message.getBody()));
        taskQueue.offer(message);
        if (!taskQueueHandlerRun) {
            taskQueueHandlerRun = true;
        if (isEmpty) {
            taskExecutor.execute(() -> {
                while (!taskQueue.isEmpty()) {
                    Message msg = taskQueue.poll();
                    try {
                    PushStreamStatusChangeFromRedisDto statusChangeFromPushStream = JSON.parseObject(msg.getBody(), PushStreamStatusChangeFromRedisDto.class);
                    if (statusChangeFromPushStream == null) {
                        logger.warn("[REDIS消息]推流设备状态变化消息解析失败");
@@ -79,8 +78,10 @@
                        // 更新部分设备上线
                        streamPushService.online(statusChangeFromPushStream.getOnlineStreams());
                    }
                    }catch (Exception e) {
                        logger.warn("[REDIS的ALARM通知] 发现未处理的异常, {}",e.getMessage());
                }
                taskQueueHandlerRun = false;
                }
            });
        }
    }