1

我目前将我的对象放入编年史队列如下

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

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

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

4

1 回答 1

2

对于写作,我建议你遵循

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

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

于 2019-02-27T15:24:31.757 回答