From faf8649ff22b8af12c758355725389204838e02a Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Thu, 05 Aug 2021 13:23:54 +0800
Subject: [PATCH] 小时缺失数据补充定时任务
---
screen-manage/src/main/java/com/moral/api/kafka/consumer/KafkaConsumer.java | 68 +++++++++++++++++++++-------------
1 files changed, 42 insertions(+), 26 deletions(-)
diff --git a/screen-manage/src/main/java/com/moral/api/kafka/consumer/KafkaConsumer.java b/screen-manage/src/main/java/com/moral/api/kafka/consumer/KafkaConsumer.java
index cc98e98..55f3f67 100644
--- a/screen-manage/src/main/java/com/moral/api/kafka/consumer/KafkaConsumer.java
+++ b/screen-manage/src/main/java/com/moral/api/kafka/consumer/KafkaConsumer.java
@@ -10,18 +10,17 @@
import org.springframework.util.StringUtils;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.Map;
-import java.util.stream.Collectors;
import com.alibaba.fastjson.JSON;
import com.moral.api.service.DeviceService;
import com.moral.api.service.HistoryHourlyService;
import com.moral.api.service.HistoryMinutelyService;
-import com.moral.api.util.AdjustDataUtils;
import com.moral.constant.KafkaConstants;
import com.moral.constant.RedisConstants;
-//@Component
+@Component
@Slf4j
public class KafkaConsumer {
@@ -35,13 +34,10 @@
private DeviceService deviceService;
@Autowired
- private AdjustDataUtils adjustDataUtils;
-
- @Autowired
private RedisTemplate redisTemplate;
//������������
- @KafkaListener(topics = KafkaConstants.TOPIC_MINUTE, groupId = KafkaConstants.GROUP_ID_INSERT, containerFactory = "kafkaListenerContainerFactory")
+ @KafkaListener(topics = KafkaConstants.TOPIC_MINUTE, groupId = KafkaConstants.GROUP_MINUTE, containerFactory = "kafkaListenerContainerFactory")
public void listenMinute(ConsumerRecord<String, String> record, Acknowledgment ack) {
String msg = record.value();
try {
@@ -56,22 +52,32 @@
}
//������������
- data = data.entrySet().stream()
- .filter(map -> {
- String key = map.getKey();
- return !(key.contains("Min") || key.contains("Max") || key.contains("Cou"));
- }).collect(Collectors.toMap(m -> m.getKey().replaceAll("-Avg", ""), Map.Entry::getValue));
data.remove("time");
+ data.remove("entryTime");
+ Iterator<Map.Entry<String, Object>> iterator = data.entrySet().iterator();
+ Map<String, Object> newMap = new HashMap<>();
+ Map.Entry<String, Object> next;
+ while (iterator.hasNext()) {
+ next = iterator.next();
+ String key = next.getKey();
+ Object value = next.getValue();
+ if (key.contains("-Avg")) {
+ newMap.put(key.replaceAll("-Avg", ""), Double.parseDouble(value.toString()));
+ } else {
+ newMap.put(key, value);
+ }
+ iterator.remove();
+ }
//���������������
- historyMinutelyService.insertHistoryMinutely(data);
+ historyMinutelyService.insertHistoryMinutely(newMap);
ack.acknowledge();
} catch (Exception e) {
- //log.error("param{}" + msg);
+ log.error("param{}" + msg);
}
}
//������������
- @KafkaListener(topics = KafkaConstants.TOPIC_HOUR, groupId = KafkaConstants.GROUP_ID_INSERT, containerFactory = "kafkaListenerContainerFactory")
+ @KafkaListener(topics = KafkaConstants.TOPIC_HOUR, groupId = KafkaConstants.GROUP_HOUR, containerFactory = "kafkaListenerContainerFactory")
public void listenHour(ConsumerRecord<String, String> record, Acknowledgment ack) {
String msg = record.value();
try {
@@ -86,22 +92,32 @@
}
//������������
- data = data.entrySet().stream()
- .filter(map -> {
- String key = map.getKey();
- return !(key.contains("Min") || key.contains("Max") || key.contains("Cou"));
- }).collect(Collectors.toMap(m -> m.getKey().replaceAll("-Avg", ""), Map.Entry::getValue));
data.remove("time");
+ data.remove("entryTime");
+ Iterator<Map.Entry<String, Object>> iterator = data.entrySet().iterator();
+ Map<String, Object> newMap = new HashMap<>();
+ Map.Entry<String, Object> next;
+ while (iterator.hasNext()) {
+ next = iterator.next();
+ String key = next.getKey();
+ Object value = next.getValue();
+ if (key.contains("-Avg")) {
+ newMap.put(key.replaceAll("-Avg", ""), Double.parseDouble(value.toString()));
+ } else {
+ newMap.put(key, value);
+ }
+ iterator.remove();
+ }
//���������������
- historyHourlyService.insertHistoryHourly(data);
+ historyHourlyService.insertHistoryHourly(newMap);
ack.acknowledge();
} catch (Exception e) {
- //log.error("param{}" + msg);
+ log.error("param{}" + msg);
}
}
//������������������������������������������������������
- @KafkaListener(topics = KafkaConstants.TOPIC_SECOND, groupId = KafkaConstants.GROUP_ID_STATE, containerFactory = "kafkaListenerContainerFactory")
+ @KafkaListener(topics = KafkaConstants.TOPIC_SECOND, groupId = KafkaConstants.GROUP_STATE, containerFactory = "kafkaListenerContainerFactory")
public void listenSecond(ConsumerRecord<String, String> record, Acknowledgment ack) {
String msg = record.value();
try {
@@ -115,14 +131,14 @@
return;
}
//������������
- data = adjustDataUtils.adjust(data);
+ data = deviceService.adjustDeviceData(data);
//������redis
- redisTemplate.opsForValue().set(RedisConstants.DEVICE_DATA + "_" + mac, data);
+ redisTemplate.opsForHash().put(RedisConstants.DATA_SECOND, mac, data);
//���������������������������
deviceService.judgeDeviceState(data);
ack.acknowledge();
} catch (Exception e) {
- //log.error("param{}" + msg);
+ log.error("param{}" + msg);
}
}
}
--
Gitblit v1.8.0