1

嗨,我是 Chronicle Queue 的新手,我有一些疑问,

  1. 我想用每小时滚动的存储文件创建一个 ChronicleQueue 我该如何创建一个。我按如下方式创建作家,

    ChronicleQueue queue = ChronicleQueueBuilder.single(chroniclePath).build();
    ExcerptAppender appender = queue.acquireAppender();
    
  2. 另外我想在消费者完成阅读后删除文件,我可以按以下方式创建一个作家吗?

    ChronicleQueue queue = ChronicleQueueBuilder.single(chroniclePath).storeFileListener(new StoreFileListener() {
    
            @Override
            public void onReleased(int cycle, File file) {
    
                if (file != null) {
                    try {
                        file.delete();
                    } catch (Exception e) {
                        //log
                    }
                }
            }
        }).build();
    

我想知道在这种情况下我是否以正确的方式做事。

  1. 我们是否需要将循环编号也存储在阅读器中,以便在重新启动后阅读。目前我只存储索引。

4

1 回答 1

1

您可以在构建器中设置滚动周期

ChronicleQueue queue = ChronicleQueueBuilder.single(chroniclePath)
                                            .rollCycle(RollCycles.HOURLY)
                                            .build();
ExcerptAppender appender = queue.acquireAppender();

侦听器可用于删除旧文件。

通常,您只需要为阅读器存储索引(循环是索引的一部分)

于 2017-04-26T13:13:59.667 回答