2017-09-13 56 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

相關問題