Erste Zählung der Nachrichten in einem rabbitmq Warteschlange von java-code
Ich versuche, um zu überprüfen, ob eine gegebene rabbitmq Warteschlange leer ist oder nicht.
Für die, die ich versuche zu verwenden:
channel.queueDeclarePassive(queueName).getMessageCount().
Mit diesem bin ich immer 0 als Antwort, unabhängig von der Anzahl der angezeigten Nachrichten durch rabbitmqctl
list_queues
.
Es gibt keine API zur Verfügung, soweit ich gesucht habe.
Möchte ich gleich beantworten, wie rabbitmqctl
list_queues
.Sie schlagen einen Weg, das zu tun.
- Versuchen
channel.queueDeclare
statt - Habe versucht, mit diesem auch.. kein Glück.. immer noch die 0 als Antwort..
InformationsquelleAutor user3184719 | 2014-02-19
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
erhalten Sie keine Nachrichten zählen, die das SDK verwenden. Kanal.queueDeclarePassive(queueName).getMessageCount() ist in der Regel nicht korrekt, weil es nicht zählen Nachrichten, die darauf warten anerkennt.
aktivieren Sie den Verwaltungs-Plug-ins und die Abfrage der queue-REST-API:
Die Antwort enthält die Gesamtzahl der Nachrichten zählen ebenso wie Nachrichten in der Handhabung/Status "bereit".
Der Zugriff auf "localhost:15672/api" sehen Sie mehr Details darüber, wie Sie es nennen.
Hier ist ein Beispiel einer Antwort auf lokale server:
http://localhost:15672/api/queues/%2f/hello
- wo 'Hallo' queue-Namen, und '/' - vhost-nameVerwenden Sie folgende url für den Zugriff auf Daten per http-api,
http://public-domain-name:15672/api/queues/%2f/queue_name
oder verwenden Sie folgenden Befehl aus localhost cli promt,
curl -i -u guest_uname:guest_password http://localhost:15672/api/queues/%2f/queue_name
Wo,
"%2f " ist default-vhost "/"