#rabbitmq #amqp #spring-amqp #spring-rabbit
#rabbitmq #amqp #spring-amqp #spring-кролик
Вопрос:
Я хочу получить количество неподтвержденных сообщений в очереди RabbitMQ.
Как я могу этого добиться?
Я пытался использовать HTTP API, конкретно /api/queues/vhost/name
, но он всегда возвращает 0 messages_unacknowledged
и messages
Комментарии:
1. Как убедиться, что
messages_unacknowledged
значение не равно 0, включен ли плагин управления2. Я запускаю образ rabbitmq management docker, в котором по умолчанию включен плагин управления, т. Е. Открыт HTTP API
3. Значит, вы нашли доступ к веб-странице управления
messages_unacknowledged
, а не 0?
Ответ №1:
HTTP (REST) API (плагин управления) не работает в режиме реального времени; он отстает от реальности.
Комментарии:
1. Вы случайно не знаете, что использовать вместо этого?
2. Я ничего не знаю; Я предлагаю вам попробовать группу rabbitmq-пользователи Google.
3. Я нашел
org.springframework.amqp.rabbit.core.RabbitAdmin#getQueueProperties
. Это тоже запаздывает?4. Нет; это в режиме реального времени, поскольку оно выполняется через соединение AMQP; однако у него есть только потребитель и количество сообщений (это не нарушает состояние сообщения).
5.
assert rabbitAdmin.getQueueProperties(queueName).get(QUEUE_MESSAGE_COUNT) == 0
в цикле выполняется трюк
Ответ №2:
rabbitAdmin.getQueueProperties(queueName).get(org.springframework.amqp.rabbit.core.RabbitAdmin.QUEUE_MESSAGE_COUNT)
выполняет задание
RabbitAdmin
это компонент, который автоматически настраивается Spring Boot.