对于收回的概念,我需要将数据从一个编年史队列复制到另一个。
直接将整个Bytes对象从一个队列的线路复制到另一个队列是否安全?
类似
documentContext()。电线()。字节()。读(byte_buffer)
然后将此byte_buffer包装到byte_store中并写为
documentContext()。电线()。字节()。写(byte_Store)。
我这样做的原因是避免任何来回转换为自定义对象?
答案 0 :(得分:1)
您可以,但更简单的方法是直接从一个复制到另一个。
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());
}
}
}
}