Python amqp队列\u以异步方式删除捕获错误

Python amqp队列\u以异步方式删除捕获错误,python,rabbitmq,amqp,tornado,Python,Rabbitmq,Amqp,Tornado,我刚刚开始使用pika(V0.9.4)和Tornado(通过使用pika.adapters.Tornado\u connection.Tornado connection),我想知道在使用时捕捉错误的合适方法是什么,比如说:queue\u delete,当您试图删除的队列不存在时。RabbitMQ引发AMQPError,但我不确定如何以异步方式处理此问题 有人对此有什么见解吗?免责声明:我是《暴风雨的amqp》的作者 我建议你试试看 尽量避免错误。如果声明与队列的连接,但该连接不存在,则将创建该

我刚刚开始使用pika(V0.9.4)和Tornado(通过使用
pika.adapters.Tornado\u connection.Tornado connection
),我想知道在使用时捕捉错误的合适方法是什么,比如说:
queue\u delete
,当您试图删除的队列不存在时。RabbitMQ引发AMQPError,但我不确定如何以异步方式处理此问题


有人对此有什么见解吗?

免责声明:我是《暴风雨的amqp》的作者

我建议你试试看


尽量避免错误。如果声明与队列的连接,但该连接不存在,则将创建该连接。然后立即删除它

或者,如果您将在下周左右再次使用该队列,也就是说,它不是一次性使用的,那么只需将其保留,并将删除作为清理长期闲置队列的系统管理活动来处理

或者只使用自动删除属性声明队列,当您断开连接时,它们将消失

import logging
logging.basicConfig()

from tornado.ioloop import IOLoop
from stormed import Connection

def on_connect():
    ch = conn.channel()
    ch.queue_declare(queue='hello', durable=False)
    ch.queue_declare(queue='hello', durable=True)

def on_error(e):
    print "Got Connection error", e.reply_text, e.reply_code
    io_loop.stop()

conn = Connection(host='localhost')
conn.on_error = on_error
conn.connect(on_connect)
io_loop = IOLoop.instance()
io_loop.start()