Có cách nào để nhận kích thước (các tin nhắn còn lại) của một hàng đợi trong rabbitmq với Curl đơn giản không?Curl để có được kích thước hàng đợi Rabbitmq
Something như curl -xget http://host:1234/api/queue/test/stats
Cảm ơn bạn
Có cách nào để nhận kích thước (các tin nhắn còn lại) của một hàng đợi trong rabbitmq với Curl đơn giản không?Curl để có được kích thước hàng đợi Rabbitmq
Something như curl -xget http://host:1234/api/queue/test/stats
Cảm ơn bạn
Cuối cùng tôi đã làm các trick như sau:
curl -s -i -u guest:guest http://host:port/api/queues/vhost/queue_name | sed 's/,/\n/g' | grep '"messages"' | sed 's/"messages"://g'
Sử dụng HTTP API từ Management Plugin.
Có vẻ bạn cần số /api/queues/(vhost)/(name)
. Đầu ra ở dạng json đơn giản, vì vậy bạn sẽ không bỏ lỡ trường messages
(và liên quan).
P.S .: Đây là một số chi tiết về dữ liệu thống kê - http://hg.rabbitmq.com/rabbitmq-management/raw-file/86f7d33a6284/priv/www/doc/stats.html vì liên kết trong tài liệu bị hỏng.
curl -u login:password http://localhost:15672/api/queues | sed 's/,/\n/g' | grep '"messages"\:'
RabbitMQ thư viện v3.3.4 PHP dựa trên HTTP api.
Như nhiều như tôi yêu hacky sed một lớp lót này có lẽ là giải pháp sạch:
curl -s -u <user>:<password> http://<host>:<port>/api/queues/<virtual-host>/<queue> | jq .messages
Bất cứ điều gì mà trông như 'sed | grep | sed' có lẽ nên được tái cấu trúc. Tôi sẽ đi cho 'curl ... | sed -n 's /.* "messages:" * \ ([^] * \). */\ 1/p'' nhưng YMMV. Nếu đầu ra là JSON đúng, '... | jq -r .messages' đơn giản và dễ đọc hơn. (Không phải ở nơi tôi có thể kiểm tra.) – tripleee
Ngoài ra, tùy chọn 'curl -i' dường như khá vô dụng nếu bạn đang vứt bỏ tiêu đề. Tôi đã bị vấp phải bởi việc trả lại mã phần trăm cho tham số vhost; 'curl -s -u khách: khách http: // localhost: 55672/api/queues /% 2F/queuename | grep -o '"messages": [0-9] *' 'hoạt động cho tôi. – tripleee