如何使用每小时滚动存储文件 (cq4) 创建编年史队列
How to create a Chronicle Queue with Hourly rolling store files(cq4)
嗨,我是 Chronicle Queue 的新手,我有一些疑问,
我想创建一个包含每小时滚动存储文件的 ChronicleQueue 如何创建一个。我按如下方式创建编写器,
ChronicleQueue queue = ChronicleQueueBuilder.single(chroniclePath).build();
ExcerptAppender appender = queue.acquireAppender();
另外我想在消费者读完后删除文件,我可以这样创建一个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();
我想知道在这种情况下我的做法是否正确。
我们是否需要将周期数也存储在reader中以供重启后读取。目前我只存储索引。
您可以在构建器中设置滚动周期
ChronicleQueue queue = ChronicleQueueBuilder.single(chroniclePath)
.rollCycle(RollCycles.HOURLY)
.build();
ExcerptAppender appender = queue.acquireAppender();
侦听器可用于删除旧文件。
通常,您只需要为reader存储索引(循环是索引的一部分)
嗨,我是 Chronicle Queue 的新手,我有一些疑问,
我想创建一个包含每小时滚动存储文件的 ChronicleQueue 如何创建一个。我按如下方式创建编写器,
ChronicleQueue queue = ChronicleQueueBuilder.single(chroniclePath).build(); ExcerptAppender appender = queue.acquireAppender();
另外我想在消费者读完后删除文件,我可以这样创建一个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();
我想知道在这种情况下我的做法是否正确。
我们是否需要将周期数也存储在reader中以供重启后读取。目前我只存储索引。
您可以在构建器中设置滚动周期
ChronicleQueue queue = ChronicleQueueBuilder.single(chroniclePath)
.rollCycle(RollCycles.HOURLY)
.build();
ExcerptAppender appender = queue.acquireAppender();
侦听器可用于删除旧文件。
通常,您只需要为reader存储索引(循环是索引的一部分)