это сейчас должно быть исправлено в последней версии
<dependency>
<groupId>net.openhft</groupId>
<artifactId>chronicle-bom</artifactId>
<version>1.13.15</version>
<type>pom</type>
<scope>import</scope>
</dependency>
или, если вы предпочитаете
<dependency>
<groupId>net.openhft</groupId>
<artifactId>chronicle-queue</artifactId>
<version>4.5.7</version>
</dependency>
также см тестового примера net.openhft.chronicle.queue.impl.single.SingleChronicleQueueTest # testReadingWritingWhenCycleIsSkipped
@Test
public void testReadingWritingWhenCycleIsSkipped() throws Exception {
final Path dir = Files.createTempDirectory("demo");
final RollCycles rollCycle = RollCycles.TEST_SECONDLY;
// write first message
try (ChronicleQueue queue = ChronicleQueueBuilder
.single(dir.toString())
.rollCycle(rollCycle).build()) {
queue.acquireAppender().writeText("first message");
}
Thread.sleep(2100);
// write second message
try (ChronicleQueue queue = ChronicleQueueBuilder
.single(dir.toString())
.rollCycle(rollCycle).build()) {
queue.acquireAppender().writeText("second message");
}
// read both messages
try (ChronicleQueue queue = ChronicleQueueBuilder
.single(dir.toString())
.rollCycle(rollCycle).build()) {
ExcerptTailer tailer = queue.createTailer();
Assert.assertEquals("first message", tailer.readText());
Assert.assertEquals("second message", tailer.readText());
}
}
Спасибо! У меня есть 2 файла cq4, которые невозможно прочитать. Вы можете скачать файлы с http://www.mf999.com/download/test.zip. Код выглядит так: SingleChronicleQueue queue = ChronicleQueueBuilder.single ("e:/test"). Build(); ExcerptTailer tailer = queue.createTailer(); System.out.println (queue.lastCycle()); while (tailer.readBytes (b -> {System.out.println (b.readUtf8());})) { System.out.println (queue.rollCycle(). ToCycle (tailer.index()) + "#" + queue.rollCycle(). toSequenceNumber (tailer.index())); } –
Спасибо. Chroncile Queue - отличная вещь. –