Как удалить все сообщения из одной очереди - PullRequest
131 голосов
/ 15 марта 2011

Как мне удалить все сообщения из одной очереди?У меня есть имя очереди, и я хочу его очистить.

Ответы [ 8 ]

130 голосов
/ 29 декабря 2015

вы можете напрямую запустить эту команду

sudo rabbitmqctl purge_queue queue_name
106 голосов
/ 16 августа 2013

rabbitmqadmin - идеальный инструмент для этого

rabbitmqadmin purge queue name=name_of_the_queue_to_be_purged
16 голосов
/ 20 сентября 2015

RabbitMQ реализует расширенный протокол очереди сообщений (AMQP), поэтому вы можете использовать универсальные инструменты для подобных вещей.

В Debian / Ubuntu или аналогичной системе выполните:

sudo apt-get install amqp-tools
amqp-delete-queue -q celery  # where celery is the name of the queue to delete
12 голосов
/ 19 марта 2015

Для очистки очереди вы можете использовать следующую команду (больше информации в API doc):

curl -i -u guest:guest -XDELETE http://localhost:15672/api/queues/vhost_name/queue_name/contents
8 голосов
/ 09 октября 2018

RabbitMQ имеет 2 вещи в очереди

  1. Удалить
  2. Очистить

Удалить - удалить очередь

Очистить - этоочистит очередь (то есть удалит сообщения из очереди, но очередь все еще существует)

8 голосов
/ 14 января 2015

ВАЖНОЕ ПРИМЕЧАНИЕ: это удалит всех пользователей и конфигурацию.

ALERT !!

ALERT !!

Я не предлагаю этот ответ до тех пор, пока вы не захотите удалить данные из всех очередей, включая пользователей и конфигурации Просто перезагрузите его !!!

rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
5 голосов
/ 04 июня 2015

Думаю, уже поздно, но для справки других, это можно сделать с помощью 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)
2 голосов
/ 06 апреля 2015

Я успешно использовал 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...