如何使用 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);
    }
}

这可以变得更有效率,但它会比你拥有的更快。