Chronicle Queue - 接收周期的最后一个索引

Chronicle Queue - Recieve last index of cycle

我正在尝试使用编年史队列来确定当前周期的最后一个索引。 在删除循环的单个 cq4 之前,我将使用起始索引和最后一个索引进行最终检查。

我希望能够在不遍历每条记录的情况下找到循环的最后一个索引。这可能吗?

有没有办法在不实际读取记录的情况下将 tailer 移动到下一个索引,它可以滚动多个周期吗?

  1. 您可以从末尾向后阅读并查看循环编号,直到您到达目标循环的最后一条记录。一旦您处于目标周期,请查看索引,这将告诉您该周期的最后一个索引。

  1. 你可以使用 countExcerpts

net.openhft.chronicle.queue.impl.single.SingleChronicleQueue#countExcerpts(fromIndex,toIndex)

其中:

fromIndex = 目标循环的第一个索引

toIndex=下一个循环的第一个索引

这将为您提供目标周期中的消息数,您可以将其视为 sequenceNumber,然后您只需使用 queue.rollCycle().toIndex(targetCycle, sequenceNumber );