如this question的答案中所述,我想使用编年史队列使用高级API存储消息。但我也想要我的消息的某种密钥,如此处所述
1.) 首先,这是使用高级 API 进行读/写的正确/有效方式吗?- 下面的代码示例
2.) 如何区分不同类别的消息?例如“获取特定键的所有消息,下面代码示例中的键是 ric”。也许在同一个队列中使用不同的主题?但我该怎么做呢?
这是我要写入队列的测试代码:
public void saveHighLevel(MyInterface obj)
{
try (ChronicleQueue queue = ChronicleQueue.singleBuilder(_location).build()) {
ExcerptAppender appender = queue.acquireAppender();
MyInterface trade = appender.methodWriter(MyInterface.class);
// Write
trade.populate(obj);
}
}
这是一个要阅读的内容:
public void readHighLevel()
{
try(ChronicleQueue queue = ChronicleQueue.singleBuilder(_location).build()) {
ExcerptTailer tailer = queue.createTailer();
MyInterface container = new MyData();
MethodReader reader = tailer.methodReader(container);
while (reader.readOne()) {
System.out.println(container);
}
}
}
我的界面:
public interface MyInterface
{
public double getPrice();
public int getSize();
public String getRic();
public void populate(MyInterface obj);
}
实现填充:
public void populate(MyInterface obj)
{
this.price = obj.getPrice();
this.ric = obj.getRic();
this.size = obj.getSize();
}