如何使用每小时滚动存储文件 (cq4) 创建编年史队列

How to create a Chronicle Queue with Hourly rolling store files(cq4)

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

  1. 我想创建一个包含每小时滚动存储文件的 ChronicleQueue 如何创建一个。我按如下方式创建编写器,

    ChronicleQueue queue = ChronicleQueueBuilder.single(chroniclePath).build();
    ExcerptAppender appender = queue.acquireAppender();
    
  2. 另外我想在消费者读完后删除文件,我可以这样创建一个writer吗,

    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. 我们是否需要将周期数也存储在reader中以供重启后读取。目前我只存储索引。

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

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

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

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