Ответ 1
Наконец я сделал трюк со следующим:
curl -s -i -u guest:guest http://host:port/api/queues/vhost/queue_name | sed 's/,/\n/g' | grep '"messages"' | sed 's/"messages"://g'
Есть ли способ получить размер (оставшиеся сообщения) очереди в rabbitmq с помощью простого Curl?
Что-то вроде curl -xget http://host:1234/api/queue/test/stats
спасибо
Наконец я сделал трюк со следующим:
curl -s -i -u guest:guest http://host:port/api/queues/vhost/queue_name | sed 's/,/\n/g' | grep '"messages"' | sed 's/"messages"://g'
Используйте HTTP API из плагина управления.
Похоже, вы можете извлечь выгоду из /api/queues/(vhost)/(name)
. Вывод в формате простого json, поэтому вы не пропустите поле messages
(и связанных с ним).
Насколько мне нравится hacky sed one-liners, это, пожалуй, самое чистое решение:
curl -s -u <user>:<password> http://<host>:<port>/api/queues/<virtual-host>/<queue> | jq .messages
curl -u login:password http://localhost:15672/api/queues | sed 's/,/\n/g' | grep '"messages"\:'
Rabbitmq v3.3.4 PHP-библиотека на основе HTTP api.
Я ценю это старый пост, и в этом вопросе конкретно говорится с использованием "curl", но я подумал, что было бы полезно добавить, что команда "rabbitmqctl list_queues" предоставляет счетчик сообщений для каждой очереди