我創建了一個每日滾動的隊列。第二天,我無法閱讀最新的附加信息。我發現在讀取上一個週期中的所有消息後,尾部索引不會自動移動到最新週期。順便說一句,java進程在晚上關閉,並在第二天重新啓動。我創建了一個每日滾動的隊列
我使用Chronicle隊列V4.52。
謝謝。
我創建了一個每日滾動的隊列。第二天,我無法閱讀最新的附加信息。我發現在讀取上一個週期中的所有消息後,尾部索引不會自動移動到最新週期。順便說一句,java進程在晚上關閉,並在第二天重新啓動。我創建了一個每日滾動的隊列
我使用Chronicle隊列V4.52。
謝謝。
這應該工作,我們有測試顯示消息從一個週期讀到下一個。
你能夠包括一個測試,再現這一點。您可以使用相當多的單元測試作爲示例。
這個現在應該是固定在最新的版本
<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隊列= ChronicleQueueBuilder.single(「e:/ test」)。build(); ExcerptTailer tailer = queue.createTailer(); System.out.println(queue.lastCycle()); (tailer.readBytes(b - > {System.out.println(b.readUtf8());})){System.out.println(queue.rollCycle()。toCycle(tailer.index())+ 「#」+ queue.rollCycle()。toSequenceNumber(tailer.index())); } –
謝謝。 Chroncile隊列是一件好事。 –