Как удалить очередь в rabbit mq

Я использую rabbitmctl, используя библиотеку pika. Я использую следующий код для создания Producer

#!/usr/bin/env python
import pika
import time
import json
import datetime


connection = pika.BlockingConnection(pika.ConnectionParameters(
        host='localhost'))
channel = connection.channel()



channel.queue_declare(queue='hello')

def callback(ch, method, properties, body):
    #print " current time: %s "  % (str(int((time.time())*1000)))

    print body

channel.basic_consume(callback,
                      queue='hello',
                      no_ack=True)


channel.start_consuming()

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

2 ответов


поскольку это, похоже, процедура обслуживания, а не то, что вы будете делать регулярно в своем коде, вы, вероятно, должны использовать плагин управления RabbitMQ и удалите очередь оттуда.

в любом случае, вы можете удалить его из pika с помощью:

channel.queue_delete(queue='hello')

https://pika.readthedocs.org/en/latest/modules/channel.html#pika.channel.Channel.queue_delete


подробный ответ выглядит следующим образом (со ссылкой на выше очень полезный и полезный ответ)

import pika


connection = pika.BlockingConnection(pika.ConnectionParameters(
               'localhost'))
channel = connection.channel()


channel.queue_delete(queue='hello')

connection.close()