2014-06-25 14 views

risposta

15

Finalmente ho fatto il trucco con il seguente:

curl -s -i -u guest:guest http://host:port/api/queues/vhost/queue_name | sed 's/,/\n/g' | grep '"messages"' | sed 's/"messages"://g' 
+0

Tutto ciò che appare come 'sed | grep | probabilmente dovrebbe essere refactored. Vorrei andare per "arricciare ... | messaggi di sed -n 's /.*: "* \ ([^] * \). */\ 1/p'' ma YMMV. Se l'output è JSON corretto, '... | jq -r .messages' è più semplice e più leggibile. (Non in un posto dove posso testare.) – tripleee

+2

Anche l'opzione 'arricciatura -i' sembra piuttosto inutile se stai lanciando comunque le intestazioni. Sono stato bloccato dal requrement in codice percentuale del parametro vhost; 'curl -s -u guest: guest http: // localhost: 55672/api/queues /% 2F/queuename | grep -o '"messages": [0-9] *' 'funziona per me. – tripleee

0

curl -u login:password http://localhost:15672/api/queues | sed 's/,/\n/g' | grep '"messages"\:'

RabbitMQ biblioteca v3.3.4 PHP basato su HTTP API.

REQRequest

4

Per quanto io amo hacky sed one-liners questa è probabilmente la soluzione più pulita:

curl -s -u <user>:<password> http://<host>:<port>/api/queues/<virtual-host>/<queue> | jq .messages 
Problemi correlati