From a2cac5ca12f100d052cb31122a84de4bba829bca Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期四, 04 一月 2024 18:34:46 +0800
Subject: [PATCH] Merge branch '2.6.9' into wvp-28181-2.0
---
src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisGpsMsgListener.java | 22 ++++++++++++----------
1 files changed, 12 insertions(+), 10 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisGpsMsgListener.java b/src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisGpsMsgListener.java
old mode 100644
new mode 100755
index bb2f4ad..4e81a59
--- a/src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisGpsMsgListener.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisGpsMsgListener.java
@@ -1,6 +1,6 @@
package com.genersoft.iot.vmp.service.redisMsg;
-import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson2.JSON;
import com.genersoft.iot.vmp.service.bean.GPSMsgInfo;
import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
@@ -27,15 +27,13 @@
private final static Logger logger = LoggerFactory.getLogger(RedisGpsMsgListener.class);
- private boolean taskQueueHandlerRun = false;
-
@Autowired
private IRedisCatchStorage redisCatchStorage;
@Autowired
private IVideoManagerStorage storager;
- private final ConcurrentLinkedQueue<Message> taskQueue = new ConcurrentLinkedQueue<>();
+ private ConcurrentLinkedQueue<Message> taskQueue = new ConcurrentLinkedQueue<>();
@Qualifier("taskExecutor")
@Autowired
@@ -44,17 +42,21 @@
@Override
public void onMessage(@NotNull Message message, byte[] bytes) {
+ boolean isEmpty = taskQueue.isEmpty();
taskQueue.offer(message);
- if (!taskQueueHandlerRun) {
- taskQueueHandlerRun = true;
+ if (isEmpty) {
taskExecutor.execute(() -> {
while (!taskQueue.isEmpty()) {
Message msg = taskQueue.poll();
- GPSMsgInfo gpsMsgInfo = JSON.parseObject(msg.getBody(), GPSMsgInfo.class);
- // 鍙槸鏀惧叆redis缂撳瓨璧锋潵
- redisCatchStorage.updateGpsMsgInfo(gpsMsgInfo);
+ try {
+ GPSMsgInfo gpsMsgInfo = JSON.parseObject(msg.getBody(), GPSMsgInfo.class);
+ // 鍙槸鏀惧叆redis缂撳瓨璧锋潵
+ redisCatchStorage.updateGpsMsgInfo(gpsMsgInfo);
+ }catch (Exception e) {
+ logger.warn("[REDIS鐨凙LARM閫氱煡] 鍙戠幇鏈鐞嗙殑寮傚父, \r\n{}", JSON.toJSONString(message));
+ logger.error("[REDIS鐨凙LARM閫氱煡] 寮傚父鍐呭锛� ", e);
+ }
}
- taskQueueHandlerRun = false;
});
}
}
--
Gitblit v1.8.0