Commit 3ab2a488 authored by duanruiming's avatar duanruiming

[update] 添加异常处理

parent 3838cf4d
...@@ -45,6 +45,7 @@ public class ConsumerHandler implements KafkaListenerErrorHandler { ...@@ -45,6 +45,7 @@ public class ConsumerHandler implements KafkaListenerErrorHandler {
@Transactional @Transactional
@KafkaListener(topics = {"cross_real_time_lane_data"}) @KafkaListener(topics = {"cross_real_time_lane_data"})
public void receiveCrossRealTimeLaneData(ConsumerRecord<Object, Object> record, Acknowledgment acknowledgment) throws Exception { public void receiveCrossRealTimeLaneData(ConsumerRecord<Object, Object> record, Acknowledgment acknowledgment) throws Exception {
try {
String crossRealTimeLaneData = String.valueOf(record.value()); String crossRealTimeLaneData = String.valueOf(record.value());
if (StringUtils.isNotBlank(crossRealTimeLaneData)) { if (StringUtils.isNotBlank(crossRealTimeLaneData)) {
List<CrossLaneDataRealTimePO> crossLaneDataRealTimePOS = JacksonUtils.getInstance().readValue(crossRealTimeLaneData, new TypeReference<List<CrossLaneDataRealTimePO>>() {}); List<CrossLaneDataRealTimePO> crossLaneDataRealTimePOS = JacksonUtils.getInstance().readValue(crossRealTimeLaneData, new TypeReference<List<CrossLaneDataRealTimePO>>() {});
...@@ -57,11 +58,16 @@ public class ConsumerHandler implements KafkaListenerErrorHandler { ...@@ -57,11 +58,16 @@ public class ConsumerHandler implements KafkaListenerErrorHandler {
} }
} }
acknowledgment.acknowledge(); acknowledgment.acknowledge();
} catch (Exception e) {
log.error("kafka消费数据插入路口车道实时表异常", e);
throw new Exception(e);
}
} }
@Transactional @Transactional
@KafkaListener(topics = {"cross_real_time_data"}) @KafkaListener(topics = {"cross_real_time_data"})
public void receiveCrossRealTimeData(ConsumerRecord<Object, Object> record, Acknowledgment acknowledgment) throws Exception { public void receiveCrossRealTimeData(ConsumerRecord<Object, Object> record, Acknowledgment acknowledgment) throws Exception {
try {
String crossRealTimeData = String.valueOf(record.value()); String crossRealTimeData = String.valueOf(record.value());
if (StringUtils.isNotBlank(crossRealTimeData)) { if (StringUtils.isNotBlank(crossRealTimeData)) {
List<CrossDataRealtimePO> crossDataRealtimePOS = JacksonUtils.getInstance().readValue(crossRealTimeData, new TypeReference<List<CrossDataRealtimePO>>() {}); List<CrossDataRealtimePO> crossDataRealtimePOS = JacksonUtils.getInstance().readValue(crossRealTimeData, new TypeReference<List<CrossDataRealtimePO>>() {});
...@@ -74,11 +80,16 @@ public class ConsumerHandler implements KafkaListenerErrorHandler { ...@@ -74,11 +80,16 @@ public class ConsumerHandler implements KafkaListenerErrorHandler {
} }
} }
acknowledgment.acknowledge(); acknowledgment.acknowledge();
} catch (Exception e) {
log.error("kafka消费数据插入路口实时表异常", e);
throw new Exception(e);
}
} }
@Transactional @Transactional
@KafkaListener(topics = {"cross_real_time_dir_data"}) @KafkaListener(topics = {"cross_real_time_dir_data"})
public void receiveCrossRealTimeDirData(ConsumerRecord<Object, Object> record, Acknowledgment acknowledgment) throws Exception { public void receiveCrossRealTimeDirData(ConsumerRecord<Object, Object> record, Acknowledgment acknowledgment) throws Exception {
try {
String crossRealTimeDirData = String.valueOf(record.value()); String crossRealTimeDirData = String.valueOf(record.value());
if (StringUtils.isNotBlank(crossRealTimeDirData)) { if (StringUtils.isNotBlank(crossRealTimeDirData)) {
List<CrossDirDataRealtimePO> crossDirDataRealtimePOS = JacksonUtils.getInstance().readValue(crossRealTimeDirData, new TypeReference<List<CrossDirDataRealtimePO>>() {}); List<CrossDirDataRealtimePO> crossDirDataRealtimePOS = JacksonUtils.getInstance().readValue(crossRealTimeDirData, new TypeReference<List<CrossDirDataRealtimePO>>() {});
...@@ -91,16 +102,22 @@ public class ConsumerHandler implements KafkaListenerErrorHandler { ...@@ -91,16 +102,22 @@ public class ConsumerHandler implements KafkaListenerErrorHandler {
} }
} }
acknowledgment.acknowledge(); acknowledgment.acknowledge();
} catch (Exception e) {
log.error("kafka消费数据插入路口方向实时表异常", e);
throw new Exception(e);
}
} }
@Transactional @Transactional
@KafkaListener(topics = {"cross_real_time_turn_data"}) @KafkaListener(topics = {"cross_real_time_turn_data"})
public void receiveCrossRealTimeTurnData(ConsumerRecord<Object, Object> record, Acknowledgment acknowledgment) throws Exception { public void receiveCrossRealTimeTurnData(ConsumerRecord<Object, Object> record, Acknowledgment acknowledgment) throws Exception {
try {
String crossRealTimeTurnData = String.valueOf(record.value()); String crossRealTimeTurnData = String.valueOf(record.value());
if (StringUtils.isNotBlank(crossRealTimeTurnData)) { if (StringUtils.isNotBlank(crossRealTimeTurnData)) {
List<CrossTurnDataRealtimePO> crossTurnDataRealtimePOS = JacksonUtils.getInstance().readValue(crossRealTimeTurnData, new TypeReference<List<CrossTurnDataRealtimePO>>() {}); List<CrossTurnDataRealtimePO> crossTurnDataRealtimePOS = JacksonUtils.getInstance().readValue(crossRealTimeTurnData, new TypeReference<List<CrossTurnDataRealtimePO>>() {});
if (!CollectionUtils.isEmpty(crossTurnDataRealtimePOS)) { if (!CollectionUtils.isEmpty(crossTurnDataRealtimePOS)) {
crossTurnDataRealTimeMapper.deleteBatch(crossTurnDataRealtimePOS.stream().map(CrossTurnDataRealtimePO::getCrossId).collect(Collectors.toList())); List<String> crossIds = crossTurnDataRealtimePOS.stream().map(CrossTurnDataRealtimePO::getCrossId).distinct().collect(Collectors.toList());
crossTurnDataRealTimeMapper.deleteBatch(crossIds);
crossTurnDataRealTimeMapper.insertBatch(crossTurnDataRealtimePOS); crossTurnDataRealTimeMapper.insertBatch(crossTurnDataRealtimePOS);
List<CrossTurnDataHistPO> list = new ArrayList<>(crossTurnDataRealtimePOS.size()); List<CrossTurnDataHistPO> list = new ArrayList<>(crossTurnDataRealtimePOS.size());
BeanListUtils.populateList(crossTurnDataRealtimePOS, list, CrossTurnDataHistPO.class); BeanListUtils.populateList(crossTurnDataRealtimePOS, list, CrossTurnDataHistPO.class);
...@@ -108,6 +125,10 @@ public class ConsumerHandler implements KafkaListenerErrorHandler { ...@@ -108,6 +125,10 @@ public class ConsumerHandler implements KafkaListenerErrorHandler {
} }
} }
acknowledgment.acknowledge(); acknowledgment.acknowledge();
} catch (Exception e) {
log.error("kafka消费数据插入路口转向实时表异常", e);
throw new Exception(e);
}
} }
@Override @Override
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment