如何使用 Chronicle Wire 为 Chronicle Queue 序列化一个简单对象
How to serialize a simple object for Chronicle Queue using Chronicle Wire
我目前将我的对象放入 Chronicle 队列中,如下所示
ExcerptAppender appender = SingleChronicleQueueBuilder
.binary("/path_to_chronicle/")
.build()
.acquireAppender();
// Write
synchronized (appender) {
appender.writeText(object.toString());
}
考虑到 "object" 的 class 正在扩展 AbstractMarshallable 并具有一些整数、长整数和字符串,是否有更有效的方法将其传递到队列?我目前从队列中读取它的方式是调用 Marshallable.fromString(text);
。我正在寻找一个没有太多代码但速度仍然很快的简单用例。
写作方面,建议大家关注
try (final DocumentContext dc = appender.writingDocument()) {
dc.wire().write("msg").object(object);
}
和阅读
try (DocumentContext dc = tailer.readingDocument()) {
if (dc.isPresent()) {
Object o = dc.wire().read("msg").object();
process(o);
}
}
这可以变得更有效率,但它会比你拥有的更快。
我目前将我的对象放入 Chronicle 队列中,如下所示
ExcerptAppender appender = SingleChronicleQueueBuilder
.binary("/path_to_chronicle/")
.build()
.acquireAppender();
// Write
synchronized (appender) {
appender.writeText(object.toString());
}
考虑到 "object" 的 class 正在扩展 AbstractMarshallable 并具有一些整数、长整数和字符串,是否有更有效的方法将其传递到队列?我目前从队列中读取它的方式是调用 Marshallable.fromString(text);
。我正在寻找一个没有太多代码但速度仍然很快的简单用例。
写作方面,建议大家关注
try (final DocumentContext dc = appender.writingDocument()) {
dc.wire().write("msg").object(object);
}
和阅读
try (DocumentContext dc = tailer.readingDocument()) {
if (dc.isPresent()) {
Object o = dc.wire().read("msg").object();
process(o);
}
}
这可以变得更有效率,但它会比你拥有的更快。