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




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