您好,我是 Chronicle Queue 的新手,我有一些疑问,
我想创建一个包含每小时滚动存储文件的 ChronicleQueue 我该如何创建一个。我按如下方式创建作家,
ChronicleQueue queue = ChronicleQueueBuilder.single(chroniclePath).build(); ExcerptAppender appender = queue.acquireAppender();
另外,我想在消费者完成读取后删除文件,我可以为其创建一个编写器,如下所示,
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();
我想知道在这种情况下我的做法是否正确。
我们是否还需要将周期数存储在读取器中以便在重新启动后读取。目前我只存储索引。
最佳答案
您可以在构建器中设置滚动周期
ChronicleQueue queue = ChronicleQueueBuilder.single(chroniclePath)
.rollCycle(RollCycles.HOURLY)
.build();
ExcerptAppender appender = queue.acquireAppender();
监听器可用于删除旧文件。
通常情况下,你只需要为阅读器存储索引(循环是索引的一部分)
关于java - 如何使用每小时滚动存储文件创建历史记录队列(cq4),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43632523/