nodejs - RabbitMQ: cómo elimino todos los mensajes de una sola cola
rabbitmq tutorial (7)
He utilizado con éxito ampq-purge
de amqp-utils para hacer esto:
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
¿Cómo borro todos los mensajes de una sola cola? Tengo el nombre de la cola y quiero limpiarlo.
NOTA IMPORTANTE: Esto eliminará todos los usuarios y config.
ALERTA !!
ALERTA !!
No sugiero esta respuesta hasta que a menos que desee eliminar datos de todas las colas, incluidos los usuarios y las configuraciones. ¡Solo reinícialo!
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
Para purgar la cola, puede usar el siguiente comando (más información en API doc):
curl -i -u guest:guest -XDELETE http://localhost:15672/api/queues/vhost_name/queue_name/contents
RabbitMQ implementa el Protocolo de cola de mensajes avanzado (AMQP) para que pueda usar herramientas genéricas para cosas como esta.
En Debian / Ubuntu o sistema similar, haz:
sudo apt-get install amqp-tools
amqp-delete-queue -q celery # where celery is the name of the queue to delete
Supongo que es tarde, pero para referencia de otros, esto se puede hacer con 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)
puedes ejecutar este comando directamente
sudo rabbitmqctl purge_queue queue_name
rabbitmqadmin es la herramienta perfecta para esto
rabbitmqadmin purge queue name=name_of_the_queue_to_be_purged