ExecutorService threadExecutor
= Executors.newFixedThreadPool(50);
@Resource
private IRtDataService iRtDataService;
@Resource
private IHisDataService iHisDataService;
@KafkaListener(topicPattern = Channels.PROPERTY_POST_CHANNEL + "-.*")
public void recvPropertyPost(List<ConsumerRecord<String, String>> records) {
threadExecutor.submit(() -> {
List<XiotDevPropertyDto> dtoList = records.stream()
.map(e -> JSON.parseObject(e.value(), XiotDevPropertyDto.class))
.filter(e -> StringUtils.isNotBlank(e.getType()) && e.getType().equals(Message.Type.MODEL_PROPERTY_POST.name()))
.collect(Collectors.toList());
log.info("属性自动上报");
try {
//存入redis
iRtDataService.updateRtData(dtoList);
} catch (Exception e) {
log.error("存入redis报错:{}", e.getMessage());
}
try {
iHisDataService.updateHisPropertyData(dtoList);
} catch (Exception e) {
log.error("属性 存入hisData报错:{}", e.getMessage());
}
});
}
@KafkaListener(topicPattern = Channels.EVENT_POST_CHANNEL + "-.*")
public void recvEventPost(List<ConsumerRecord<String, String>> records) {
threadExecutor.submit(() -> {
List<XiotDevEventDto> dtoList = records.stream()
.map(e -> JSON.parseObject(e.value(), XiotDevEventDto.class))
.filter(e -> StringUtils.isNotBlank(e.getType()) && e.getType().equals(Message.Type.MODEL_EVENT_POST.name()))
.collect(Collectors.toList());
//存入influxdb
try {
iHisDataService.updateHisEventData(dtoList);
} catch (Exception e) {
log.error("事件 存入hisData报错:{}", e.getMessage());
}
});
}
@KafkaListener(topicPattern = Channels.PROPERTY_SET_REPLY_CHANNEL + "-.*")
public void recvPropertySetReply(List<ConsumerRecord<String, String>> records) {
List<XiotDevPropertyDto> dtoList = records.stream()
.map(e -> JSON.parseObject(e.value(), XiotDevPropertyDto.class))
.filter(e -> StringUtils.isNotBlank(e.getType()) && e.getType().equals(Message.Type.MODEL_PROPERTY_SET_REPLY.name()))
.collect(Collectors.toList());
try {
log.info("属性反控上报");
//存入redis
iRtDataService.updateRtData(dtoList);
} catch (Exception e) {
log.error("存入redis报错:{}", e.getMessage());
}
try {
//存入influxdb
iHisDataService.updateHisPropertyData(dtoList);
} catch (Exception e) {
log.error("属性 存入hisData报错:{}", e.getMessage());
}
}
kafka中Consumer类(扩展topic)
最新推荐文章于 2022-10-22 11:53:48 发布