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() {