LINUX.ORG.RU

Получить количество сообщений в очереди в RabbitMQ на Java

 ,


0

1

Ребят, привет всем.

Такой вопрос возник.
Каким образом можно узнать, есть ли в очереди сообщения или нет (и если есть, то сколько)? Я нагугливал и rest-запросы Кролю, и вообще то, что это невозможно.

Сразу скажу, что мне это нужно в клиентском коде.

Зачем? Мне сообщения приходят с разных очередей, и чтобы не долбиться безуспешно в многопоточность, хотелось бы это сделать более-менее элегантно.

Я нагугливал и rest-запросы Кролю, и вообще то, что это невозможно.

Как бы правильно пишут, «оно для этого не предназначено» (С). Кол-во сообщений в очереди здесь используется чисто для общего мониторинга, а не для построения какой-то логики обработки очередей.

Зачем? Мне сообщения приходят с разных очередей, и чтобы не долбиться безуспешно в многопоточность, хотелось бы это сделать более-менее элегантно.

Собирай сообщения из всех очередей в одной.

aidan ★★★★ ()
Ответ на: комментарий от aidan

Собирай сообщения из всех очередей в одной.

Код можете привести?

Я использовал класс QueueingConsumer для получения сообщений, но вроде как забайндить на разные очереди его нельзя.

kachsheev ★★★ ()

Каким образом можно узнать, есть ли в очереди сообщения или нет

Подписываешься - если сообщения есть они к тебе придут.

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

Заведи очередь для своего приложения и пересылай туда всё что нужно.

ya-betmen ★★★★★ ()
Ответ на: комментарий от kachsheev

Я не про клиент, а про организацию в принципе. Если тебя устраивает сбор сообщений из одной очереди, то зачем вообще изначально писать их в несколько? Пишу в одну.

aidan ★★★★ ()
Ответ на: комментарий от aidan

Помимо моего клиента есть другие, которые требуют сообщения. Моя прога как промежуточная нода, выполняющая свои функции в зависимости от сообщений/очередей.

Поэтому и спросил про опрос очередей на наличие сообщений.

kachsheev ★★★ ()
Ответ на: комментарий от kachsheev

Помимо моего клиента есть другие, которые требуют сообщения. Моя прога как промежуточная нода, выполняющая свои функции в зависимости от сообщений/очередей.

Сделай на входе exchange, который будет сообщения дублировать в очередь для твоего клиента.

aidan ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.