जवाबों:
rabbitmqadmin इसके लिए एकदम सही उपकरण है
rabbitmqadmin purge queue name=name_of_the_queue_to_be_purged
http://rabbitserver:15672/cli/
आप सीधे इस कमांड को चला सकते हैं
sudo rabbitmqctl purge_queue queue_name
rabbitmqctl purge_queue queue_name -p my_virt_host
कतार को शुद्ध करने के लिए आप निम्न आदेश (API doc में अधिक जानकारी) का उपयोग कर सकते हैं:
curl -i -u guest:guest -XDELETE http://localhost:15672/api/queues/vhost_name/queue_name/contents
RabbitMQ उन्नत संदेश कतारबद्ध प्रोटोकॉल (AMQP) को लागू करता है ताकि आप इस तरह से सामान के लिए सामान्य उपकरण का उपयोग कर सकें।
डेबियन / उबंटू या इसी तरह की प्रणाली पर, करें:
sudo apt-get install amqp-tools
amqp-delete-queue -q celery # where celery is the name of the queue to delete
RabbitMQ में कतार के तहत 2 चीजें हैं
हटाएं - कतार को हटा देगा
पर्ज - यह कतार को खाली कर देगा (मतलब कतार से संदेश हटाता है लेकिन कतार अभी भी मौजूद है)
महत्वपूर्ण नोट: यह सभी उपयोगकर्ताओं और कॉन्फ़िगर को हटा देगा।
ALERT !!
ALERT !!
जब तक आप सभी कतारों से उपयोगकर्ता और कॉन्फ़िगरेशन सहित डेटा हटाना नहीं चाहते, तब तक मैं इस उत्तर का सुझाव नहीं देता। बस इसे रीसेट करें !!!
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
मैं इसके देर से अनुमान लगाता हूं लेकिन अन्य संदर्भों के लिए, यह पिका के साथ किया जा सकता है
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)
मैंने सफलतापूर्वक ऐसा करने के लिए amqp-utilsampq-purge
से उपयोग किया है :
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
कतार से केवल संदेशों को हटाने के लिए:
sudo rabbitmqctl --node <nodename> purge_queue <queue_name>
एक कतार हटाने के लिए जो खाली ( -इफ़-खाली ) है या जिसका कोई उपभोक्ता नहीं है ( --if-unused ) उपयोग:
sudo rabbitmqctl --node <nodename> delete_queue <queue_name> --if-empty
या
sudo rabbitmqctl --node <nodename> delete_queue <queue_name> --if-unused