From 1e97ba7505a340d286a1bef3d2e77c76d1f70522 Mon Sep 17 00:00:00 2001 From: wangshilong Date: Sat, 23 Nov 2024 15:33:51 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E6=9E=90=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/decode/impl/Knpcv1DecodeHandler.java | 2 +- .../listener/ModbusMessageBackupListener.java | 23 ++++++++++++++++++- .../ModbusMessagePersistListener.java | 2 ++ .../impl/Redis2DBPersistenceHandlerImpl.java | 2 +- 4 files changed, 26 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/isu/gaswellwatch/modbus/data/decode/impl/Knpcv1DecodeHandler.java b/src/main/java/com/isu/gaswellwatch/modbus/data/decode/impl/Knpcv1DecodeHandler.java index 8a68359..d80d94c 100644 --- a/src/main/java/com/isu/gaswellwatch/modbus/data/decode/impl/Knpcv1DecodeHandler.java +++ b/src/main/java/com/isu/gaswellwatch/modbus/data/decode/impl/Knpcv1DecodeHandler.java @@ -23,7 +23,7 @@ import org.springframework.stereotype.Component; public class Knpcv1DecodeHandler implements DecodeHandler { public static final String MODBUS_DEVICE_TYPE = "KNPCV1"; - private final RedisTemplate redisTemplate; + private final RedisTemplate redisTemplate; @Override public void decode(Message message) throws Exception { diff --git a/src/main/java/com/isu/gaswellwatch/modbus/data/decode/listener/ModbusMessageBackupListener.java b/src/main/java/com/isu/gaswellwatch/modbus/data/decode/listener/ModbusMessageBackupListener.java index 9480bde..9cd9b93 100644 --- a/src/main/java/com/isu/gaswellwatch/modbus/data/decode/listener/ModbusMessageBackupListener.java +++ b/src/main/java/com/isu/gaswellwatch/modbus/data/decode/listener/ModbusMessageBackupListener.java @@ -1,9 +1,17 @@ package com.isu.gaswellwatch.modbus.data.decode.listener; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.amqp.core.BatchMessageListener; import org.springframework.amqp.core.Message; +import java.io.BufferedWriter; +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.StandardOpenOption; import java.util.List; /** @@ -20,7 +28,20 @@ public class ModbusMessageBackupListener implements BatchMessageListener { @Override public void onMessageBatch(List messages) { - + Path filePath; + String messageString, queueName, backupFileName; + for (Message message : messages) { + queueName = message.getMessageProperties().getConsumerQueue(); + backupFileName = StringUtils.replace(queueName, "/", "_"); + messageString = new String(message.getBody()); + filePath = Paths.get("D:\\modbus\\data\\" + backupFileName + ".data"); + try (BufferedWriter writer = Files.newBufferedWriter(filePath, StandardCharsets.UTF_8, StandardOpenOption.APPEND)) { + writer.write(messageString); + writer.write("\n"); + } catch (IOException e) { + log.error("Backup message failed. QueueName {}, Message {}", queueName, messageString, e); + } + } } } diff --git a/src/main/java/com/isu/gaswellwatch/modbus/data/decode/listener/ModbusMessagePersistListener.java b/src/main/java/com/isu/gaswellwatch/modbus/data/decode/listener/ModbusMessagePersistListener.java index 7516cd1..5f6529e 100644 --- a/src/main/java/com/isu/gaswellwatch/modbus/data/decode/listener/ModbusMessagePersistListener.java +++ b/src/main/java/com/isu/gaswellwatch/modbus/data/decode/listener/ModbusMessagePersistListener.java @@ -20,6 +20,8 @@ public class ModbusMessagePersistListener implements BatchMessageListener { @Override public void onMessageBatch(List messages) { + for (Message message : messages) { + } } } diff --git a/src/main/java/com/isu/gaswellwatch/modbus/data/impl/Redis2DBPersistenceHandlerImpl.java b/src/main/java/com/isu/gaswellwatch/modbus/data/impl/Redis2DBPersistenceHandlerImpl.java index 5afa876..ddb945a 100644 --- a/src/main/java/com/isu/gaswellwatch/modbus/data/impl/Redis2DBPersistenceHandlerImpl.java +++ b/src/main/java/com/isu/gaswellwatch/modbus/data/impl/Redis2DBPersistenceHandlerImpl.java @@ -14,7 +14,7 @@ import org.springframework.stereotype.Component; @RequiredArgsConstructor public class Redis2DBPersistenceHandlerImpl implements PersistenceHandler { - private final RedisTemplate redisTemplate; + private final RedisTemplate redisTemplate; @Scheduled(cron = "0/10 * * * * ? ") public void write() {