2

对于备份的概念,我需要将数据从一个编年史队列复制到另一个。

将整个 Bytes 对象从一个队列的线直接复制到另一个队列中是否安全?

就像是

documentContext().wire().bytes().read(byte_buffer)

然后将此 byte_buffer 包装到 byte_store 中并写为

documentContext().wire().bytes().write(byte_Store)。

我这样做的原因是避免任何来回转换为自定义对象?

4

1 回答 1

1

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());
        }
    }
}

}

于 2017-09-13T13:23:34.723 回答