2017-09-13 3 views
2

Für das Konzept der Rücknahme, muss ich Daten von einer Chronik-Warteschlange in eine andere kopieren.Kopieren von Daten von einem Chronicle zu einem anderen

Wäre es sicher, das gesamte Bytes-Objekt direkt von einer Warteschlange in eine andere zu kopieren?

so etwas wie

documentContext(). Draht(). Bytes(). Read (byte_buffer)

und dann diese byte_buffer in byte_store und Schreiben als

documentContext Einwickeln(). Draht () .bytes(). write (byte_Store).

Der Grund, warum ich es mache, ist eine Konvertierung in benutzerdefinierte Objekte zu vermeiden?

Antwort

1

Sie können, aber ein einfacherer Ansatz ist es, direkt von einem zum anderen zu kopieren.

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

Ahh ok, danke. Nur eine Frage zur Bestätigung, chronicles files scheint Agnostiker zu Maschine oder Server, der sie erstellt, dh ich kann eine Chronik-Datei in höheren env zu meinem dev env zum Debuggen Zwecke kopiert (ich glaube, es ist auch, was Dokument spricht) kopieren . Ist mein Verständnis richtig? – user3887600

Verwandte Themen