Как сериализовать простой объект для 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 ответ
Решение
Для написания я бы предложил вам следовать
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);
}
}
Это можно сделать более эффективным, но это будет быстрее, чем у вас есть.