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