Как сериализовать простой объект для Chronicle Queue с помощью Chronicle Wire - PullRequest
0 голосов
/ 26 февраля 2019

В настоящее время я помещаю свои объекты в очередь хроники следующим образом:

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

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

Учитывая, что класс "object" расширяет AbstractMarshallable и имеет некоторые целые, длинные и строковые значения, существует ли более эффективный способ передачиэто в очередь?В настоящее время я читаю его из очереди, вызывая Marshallable.fromString(text);.Я ищу простой вариант использования без слишком большого количества кода, но все еще быстро.

1 Ответ

0 голосов
/ 27 февраля 2019

Для письма я бы посоветовал вам следовать

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

Это можно сделать более эффективным, но это будет быстрее, чем у вас.

...