对于备份的概念,我需要将数据从一个编年史队列复制到另一个。
将整个 Bytes 对象从一个队列的线直接复制到另一个队列中是否安全?
就像是
documentContext().wire().bytes().read(byte_buffer)
然后将此 byte_buffer 包装到 byte_store 中并写为
documentContext().wire().bytes().write(byte_Store)。
我这样做的原因是避免任何来回转换为自定义对象?
对于备份的概念,我需要将数据从一个编年史队列复制到另一个。
将整个 Bytes 对象从一个队列的线直接复制到另一个队列中是否安全?
就像是
documentContext().wire().bytes().read(byte_buffer)
然后将此 byte_buffer 包装到 byte_store 中并写为
documentContext().wire().bytes().write(byte_Store)。
我这样做的原因是避免任何来回转换为自定义对象?
You can, but a simpler approach is to copy directly from one to the other.
ChronicleQueue inQ = SingleChronicleQueueBuilder.binary("in").build();
ExcerptTailer tailer = inQ.createTailer();
ChronicleQueue outQ = SingleChronicleQueueBuilder.binary("out").build();
ExcerptAppender appender = outQ.acquireAppender();
while(true) {
try (DocumentContext inDC = tailer.readingDocument()) {
if (!inDC.isPresent()) {
// not message available
break; // or pause or do something else.
}
try (DocumentContext outDC = appender.writingDocument()) {
outDC.wire().write(inDC.wire().bytes());
}
}
}
}