Antworten:
rabbitmqadmin ist das perfekte Werkzeug dafür
rabbitmqadmin purge queue name=name_of_the_queue_to_be_purged
http://rabbitserver:15672/cli/
Sie können diesen Befehl direkt ausführen
sudo rabbitmqctl purge_queue queue_name
rabbitmqctl purge_queue queue_name -p my_virt_host
Zum Löschen der Warteschlange können Sie den folgenden Befehl verwenden (weitere Informationen im API-Dokument):
curl -i -u guest:guest -XDELETE http://localhost:15672/api/queues/vhost_name/queue_name/contents
RabbitMQ implementiert das Advanced Message Queuing Protocol (AMQP), sodass Sie für solche Dinge generische Tools verwenden können.
Führen Sie auf Debian / Ubuntu oder einem ähnlichen System Folgendes aus:
sudo apt-get install amqp-tools
amqp-delete-queue -q celery # where celery is the name of the queue to delete
RabbitMQ hat 2 Dinge in der Warteschlange
Löschen - löscht die Warteschlange
Bereinigen - Hiermit wird die Warteschlange geleert (dh Nachrichten werden aus der Warteschlange entfernt, aber die Warteschlange ist noch vorhanden).
WICHTIGER HINWEIS: Dadurch werden alle Benutzer und Konfigurationen gelöscht.
ALERT !!
ALERT !!
Ich schlage diese Antwort erst vor, wenn Sie Daten aus allen Warteschlangen löschen möchten, einschließlich Benutzer und Konfigurationen. Einfach zurücksetzen !!!
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
Ich denke, es ist spät, aber für andere Referenz kann dies mit Pika gemacht werden
import pika
host_ip = #host ip
channel = pika.BlockingConnection(pika.ConnectionParameters(host_ip,
5672,
"/",
credentials=pika.PlainCredentials("username","pwd"))).channel()
print "deleting queue..", channel.queue_delete(queue=queue_name)
Ich habe erfolgreich ampq-purge
von amqp-utils verwendet , um dies zu tun:
git clone https://github.com/dougbarth/amqp-utils.git
cd amqp-utils
# extracted from Rakefile
echo "source 'https://rubygems.org'
gem 'amqp', '~> 0.7.1'
gem 'trollop', '~> 1.16.2'
gem 'facets', '~> 2.9'
gem 'clio', '~> 0.3.0'
gem 'json', '~> 1.5'
gem 'heredoc_unindent', '~> 1.1.2'
gem 'msgpack', '~> 0.4.5'" > Gemfile
bundle install --path=$PWD/gems
export RUBYLIB=.
export GEM_HOME=$PWD/gems/ruby/1.9.1
ruby bin/amqp-purge -v -V /vhost -u user -p queue
# paste password at prompt
Um nur Nachrichten aus der Warteschlange zu löschen, verwenden Sie:
sudo rabbitmqctl --node <nodename> purge_queue <queue_name>
Um eine Warteschlange zu löschen, die leer ist ( --if-leer ) oder keine Verbraucher hat ( --if-unbenutzt ), verwenden Sie:
sudo rabbitmqctl --node <nodename> delete_queue <queue_name> --if-empty
oder
sudo rabbitmqctl --node <nodename> delete_queue <queue_name> --if-unused