Answers:
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文档中的更多信息):
curl -i -u guest:guest -XDELETE http://localhost:15672/api/queues/vhost_name/queue_name/contents
重要说明:这将删除所有用户和配置。
提醒!
提醒!
除非您要从所有队列(包括用户和配置)中删除数据,否则我不建议使用此答案。只需重置它!
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
我想它来晚了,但可以参考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)
我已经成功地使用ampq-purge
从AMQP-utils的要做到这一点:
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-empty)或没有使用者(--if-unused)的队列,请使用:
sudo rabbitmqctl --node <nodename> delete_queue <queue_name> --if-empty
要么
sudo rabbitmqctl --node <nodename> delete_queue <queue_name> --if-unused