Jawaban:
rabbitmqadmin adalah alat yang sempurna untuk ini
rabbitmqadmin purge queue name=name_of_the_queue_to_be_purged
http://rabbitserver:15672/cli/
Anda dapat langsung menjalankan perintah ini
sudo rabbitmqctl purge_queue queue_name
rabbitmqctl purge_queue queue_name -p my_virt_host
Untuk membersihkan antrian, Anda dapat menggunakan perintah berikut (informasi lebih lanjut di API doc):
curl -i -u guest:guest -XDELETE http://localhost:15672/api/queues/vhost_name/queue_name/contents
RabbitMQ mengimplementasikan Advanced Message Queuing Protocol (AMQP) sehingga Anda dapat menggunakan alat umum untuk hal-hal seperti ini.
Di Debian / Ubuntu atau sistem serupa, lakukan:
sudo apt-get install amqp-tools
amqp-delete-queue -q celery # where celery is the name of the queue to delete
RabbitMQ memiliki 2 hal yang sedang dalam antrian
Hapus - akan menghapus antrian
Purge - Ini akan mengosongkan antrian (artinya menghapus pesan dari antrian tetapi antrian masih ada)
CATATAN PENTING: Ini akan menghapus semua pengguna dan konfigurasi.
PERINGATAN !!
PERINGATAN !!
Saya tidak menyarankan jawaban ini sampai kecuali Anda ingin menghapus data dari semua antrian, termasuk pengguna dan konfigurasi. Setel Ulang Saja !!!
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
Saya kira sudah terlambat tapi untuk referensi orang lain, ini bisa dilakukan dengan pika
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)
Saya telah berhasil menggunakan ampq-purge
dari amqp-utils untuk melakukan ini:
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
Untuk menghapus hanya pesan dari penggunaan antrian:
sudo rabbitmqctl --node <nodename> purge_queue <queue_name>
Untuk menghapus antrian yang kosong ( --jika kosong ) atau tidak memiliki konsumen ( --jika tidak digunakan ) gunakan:
sudo rabbitmqctl --node <nodename> delete_queue <queue_name> --if-empty
atau
sudo rabbitmqctl --node <nodename> delete_queue <queue_name> --if-unused