2017-09-13 92 views
2

对于恢复的概念,我需要将数据从一个记录队列复制到另一个。将数据从一个Chronicle复制到另一个

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

类似

documentContext()。电线()。字节()。读(byte_buffer)

,然后包裹此byte_buffer成byte_store和写入作为

documentContext()。电线( ).bytes()。写(byte_Store)。

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

回答

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

}

+0

啊好的,谢谢。只是一个附加问题的确认,编年史文件似乎是不可知的机器或服务器创建它们,即我可以复制一个更高的env生成的编年史文件到我的开发环境调试目的(我相信这也是什么文件谈到) 。我的理解是否正确? – user3887600

相关问题