Как получить размер памяти BlockingQueue в Java

У меня есть программа Java, которая отправляет сообщения внешнему API Rest. Этот API может обрабатывать полезную нагрузку только с максимальным размером 500 КБ.

Мои сообщения хранятся в BlockingQueue. Мне было интересно, есть ли простой способ проверить, меньше ли размер памяти BlockingQueue 500 КБ, и если я достигну этого размера, я просто сброшу и вызову API.

Это правильный подход?

Спасибо

Вы можете использовать LinkedBlockingQueue (ограниченный). Таким образом, вы можете контролировать реализацию

Gauravsa 14.01.2019 04:28
github.com/DimitrisAndreou/memory-measurer с помощью этой библиотеки вы можете измерить размер памяти любого объекта.
Ragu 14.01.2019 04:33

Кто сказал, что размер памяти очереди блоков имеет какое-либо отношение к размеру сериализованных сообщений, которые вы собираетесь отправить в Rest API? Лучший подход: сериализируйте сообщения, которые вы потенциально можете объединить, прежде чем помещать их в очередь блоков. Тогда размер отдельных сообщений - это просто количество символов или байтов в сериализованной форме, которое легко подсчитать.

Erwin Bolwidt 14.01.2019 04:39
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
3
225
0

Другие вопросы по теме