我尝试在exchange_declare
回调中使用交换名称。我将SelectConnection
适配器用于 Pika 中的异步请求。
我的想法是首先在我的程序中构建交换、队列和绑定列表。然后,我向 Pika 发送多个交换和队列声明,并在每个绑定所需的队列和交换收到它们的 DeclareOK 消息后立即创建绑定。
这意味着我需要知道回调中的交换和队列的名称,以便我可以将它们与要创建的绑定相关联。
像这样的东西:
print "Create A"
channel.exchange_declare(callback=on_exchange, exchange="exchangeA")
print "Create B"
channel.exchange_declare(callback=on_exchange, exchange="exchangeB")
def on_exchange(response):
# How do I know if this was exchangeA or exchangeB ?
print "Exchange declared"
print response
这给出了以下输出,清楚地表明首先声明了交换,然后触发了回调(如预期的那样):
Create A
Create B
Exchange declared
<METHOD(['method=<Exchange.DeclareOk>', 'channel_number=1', 'frame_type=1'])>
Exchange declared
<METHOD(['method=<Exchange.DeclareOk>', 'channel_number=1', 'frame_type=1'])>
我发现它response
是pika.frame.Method类型,但我该如何从那里开始呢?交换是否可以保证按顺序声明?