如何使用Chronicle Wire序列化Chronicle Queue的简单对象

时间:2019-02-26 11:03:43

标签: chronicle chronicle-queue chronicle-wire

我目前将我的对象按如下方式放在编年史队列中

ExcerptAppender appender = SingleChronicleQueueBuilder
                .binary("/path_to_chronicle/")
                .build()
                .acquireAppender();

// Write
synchronized (appender) {
    appender.writeText(object.toString());
}

考虑到“对象”的类正在扩展AbstractMarshallable并具有一些整数,多头和字符串,是否有更有效的方法将其传递给队列?我当前从队列中读取它的方式是通过调用Marshallable.fromString(text);。我正在寻找一个简单的用例,没有太多的代码,但仍然很快。

1 个答案:

答案 0 :(得分:1)

在写作方面,我建议您遵循

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);
    }
}

这可以提高效率,但是会比您拥有的更快。