【问题标题】:How to copy one tailer's read index to apply into another tailer using Chronicle Queue如何使用 Chronicle Queue 复制一个tailer 的读取索引以应用于另一个tailer
【发布时间】:2022-01-19 23:20:21
【问题描述】:

我创建了一个tailerA 并使用tailerA 读取第100 条消息。 我创建了另一个tailerB

ChronicleQueue queue = SingleChronicleQueueBuilder.single("/home/data").rollCycle(rollCycles).build()

ExcerptTailer tailerA = queue.createTailer("A")
ExcerptTailer tailerB = queue.createTailer("B")

for(int i = 1;i < 101;i++){
   tailerA.read()  <- this is a simplified code for read
}


使用tailerB读取,它应该从第1条到第100条一条一条地读取,但我需要的是使用tailerB从第100条消息开始读取。如何使用tailerA将第100条信息复制到tailerB中?

【问题讨论】:

    标签: message-queue chronicle chronicle-queue


    【解决方案1】:

    您可以获得ExcerptTailer指向的索引

    long index = tailerA.index();
    

    你可以将tailer设置为这个索引

    boolean success = tailerB.moveToIndex(index);
    

    假设这是成功的,两个tailer接下来将阅读相同的摘录。

    【讨论】:

    • 它完全解决了我的问题,但顺便说一句,我注意到如果tailerA已经读到最后,那么tailerB.moveToIndex(index)将返回false,我很好奇它为什么设计成返回 false。
    • @Asuka_Truth 它返回 false,因为该索引处还没有条目。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    相关资源
    最近更新 更多