1

我刚刚开始将 pika(v 0.9.4) 与 Tornado 一起使用(通过使用pika.adapters.tornado_connection.TornadoConnection),我想知道在使用时捕获错误的适当方法是什么,例如:queue_delete当您尝试删除的队列没有时不存在。RabbitMQ 引发 AMQPError,但我不确定如何以异步方式处理它。

有人对此有任何见解吗?

4

2 回答 2

0

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

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

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

于 2011-04-26T07:20:56.943 回答
0

免责声明:我是stormed-amqp的作者

我建议尝试使用stormed-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()
于 2011-03-18T08:30:58.990 回答