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는 대기열에 두 가지가 있습니다.
- 지우다
- 숙청
삭제-대기열을 삭제합니다
제거-큐를 비 웁니다 (즉, 큐에서 메시지를 제거하지만 큐는 여전히 존재 함)
답변
중요 참고 : 모든 사용자 및 구성이 삭제됩니다.
경고!
경고!
사용자와 구성을 포함하여 모든 대기열에서 데이터를 삭제하지 않는 한이 답변을 제안하지 않습니다. 그냥 재설정하십시오!
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)