From 4133d836c5aa4ebbf11e3749528a4e484ef7ca9e Mon Sep 17 00:00:00 2001
From: cjl <276999030@qq.com>
Date: Fri, 13 Oct 2023 17:03:28 +0800
Subject: [PATCH] fix:补偿提交

---
 screen-manage/src/main/java/com/moral/api/kafka/consumer/DeviceConsumer.java |   29 ++++++++++++++---------------
 1 files changed, 14 insertions(+), 15 deletions(-)

diff --git a/screen-manage/src/main/java/com/moral/api/kafka/consumer/DeviceConsumer.java b/screen-manage/src/main/java/com/moral/api/kafka/consumer/DeviceConsumer.java
index 9ae8bad..886bc72 100644
--- a/screen-manage/src/main/java/com/moral/api/kafka/consumer/DeviceConsumer.java
+++ b/screen-manage/src/main/java/com/moral/api/kafka/consumer/DeviceConsumer.java
@@ -5,6 +5,7 @@
 import com.moral.constant.KafkaConstants;
 import com.moral.constant.RedisConstants;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.kafka.clients.consumer.CommitFailedException;
 import org.apache.kafka.clients.consumer.ConsumerRecord;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -143,32 +144,30 @@
     public void listenSecond(ConsumerRecord<String, String> record, Acknowledgment ack) {
         String msg = record.value();
         try {
-
+            ack.acknowledge();
             Map<String, Object> data = JSON.parseObject(msg, Map.class);
             Object mac = data.get("mac");
             Object time = data.get("DataTime");
             if (ObjectUtils.isEmpty(time) || ObjectUtils.isEmpty(mac)) {
                 log.warn("some properties is null, param{}", msg);
-                ack.acknowledge();
                 return;
-            }
-            List<String> listDictDevice = Arrays.asList(deviceList.split(","));
-            if(!listDictDevice.contains(mac.toString())){
-                ack.acknowledge();
             }
             //������������
             data.remove("time");
             data.remove("entryTime");
-
-            //������������
-            data = deviceService.adjustDeviceData(data,"0");
-            //������redis
             data.put("DataTime", time);
-            redisTemplate.opsForHash().put(RedisConstants.DATA_SECOND, mac, data);
-            //���������������������������
-            data.put("mac", mac);
-            deviceService.judgeDeviceState(data);
-            ack.acknowledge();
+            List<String> listDictDevice = Arrays.asList(deviceList.split(","));
+            if(listDictDevice.contains(mac.toString())){
+                //���������������������������
+                data.put("mac", mac);
+                deviceService.judgeDeviceState(data);
+            }
+            //������������
+            //data = deviceService.adjustDeviceData(data,"0");
+            //������redis
+            //redisTemplate.opsForHash().put(RedisConstants.DATA_SECOND, mac, data);
+        }catch (CommitFailedException e){
+            log.error("param{}" + msg);
         } catch (Exception e) {
             log.error("param{}" + msg);
             ack.acknowledge();

--
Gitblit v1.8.0