[rabbitmq] CLI를 사용하여 단일 대기열에서 모든 메시지를 어떻게 삭제합니까?

cli를 사용하여 단일 대기열에서 모든 메시지를 어떻게 삭제합니까? 대기열 이름이 있는데 정리하고 싶습니다.



답변

rabbitmqadmin은이 를위한 완벽한 도구입니다

rabbitmqadmin purge queue name=name_of_the_queue_to_be_purged


답변

이 명령을 직접 실행할 수 있습니다

sudo rabbitmqctl purge_queue queue_name


답변

큐를 제거하려면 다음 명령을 사용할 수 있습니다 (API 문서의 추가 정보).

curl -i -u guest:guest -XDELETE http://localhost:15672/api/queues/vhost_name/queue_name/contents


답변

RabbitMQ는 AMQP (Advanced Message Queuing Protocol)를 구현하므로 이와 같은 일반적인 도구를 사용할 수 있습니다.

데비안 / 우분투 또는 이와 유사한 시스템에서 다음을 수행하십시오.

sudo apt-get install amqp-tools
amqp-delete-queue -q celery  # where celery is the name of the queue to delete


답변

RabbitMQ는 대기열에 두 가지가 있습니다.

  1. 지우다
  2. 숙청

삭제-대기열을 삭제합니다

제거-큐를 비 웁니다 (즉, 큐에서 메시지를 제거하지만 큐는 여전히 존재 함)


답변

중요 참고 : 모든 사용자 및 구성이 삭제됩니다.

경고!

경고!

사용자와 구성을 포함하여 모든 대기열에서 데이터를 삭제하지 않는 한이 답변을 제안하지 않습니다. 그냥 재설정하십시오!

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)