Значение метода прокси-сервера очереди хроники каждый раз совпадает с экземпляром объекта - PullRequest
0 голосов
/ 24 января 2019

Я использую прокси-API Chronicle V4 для преобразования сообщения в вызов функции.

Когда myMethod(Thing a) вызывается после вызова readOne(), идентификатор экземпляра объекта 'a' одинаков каждый раз, но содержимое имеет последнее состояние.

Представьте себе:

readOne();
readOne();

Методы стрельбы:

myMethod(Thing a)
myMethod(Thing a)

Второй вызов с параметром 'a' теперь с другим состоянием переопределяет любую предыдущую версию кэша 'a', скажем, в хэш-карте в памяти, потому что идентификатор экземпляра объекта java - это тот же самый , когда myMethod был вызывается изначально.

Я надеюсь, что это немного странно в моей настройке - было бы полезно узнать, если это задумано или просто проблема моя конец.

1 Ответ

0 голосов
/ 25 января 2019

Это сделано для того, чтобы обеспечить скрытую переработку объекта.

Если вы хотите новый объект, вы можете использовать Marshallable.deepCopy() или Marshallable.copyTo() существующий. Если вы не сохраните объект, не должно быть проблемы. Например, если вы записываете его в другую очередь, он записывается немедленно, а не в фоновом режиме.

Он реализован таким образом, что вы можете обрабатывать миллионы событий и создавать очень мало объектов. то есть менее 1 байта мусора на сообщение.

Я настоятельно рекомендую использовать последнюю версию Queue https://search.maven.org/search?q=g:net.openhft%20AND%20a:chronicle-queue в настоящее время v5.17.4

...