扭曲和皮卡 - 如何将回调添加到消息确认调用



我正在使用pika的扭曲协议适配器。当我成功处理消息后,我使用以下调用向 RabbitMQ 发送确认:

channel.basic_ack(delivery_tag=delivery_tag) 

basic_ack调用似乎异步触发,但它没有返回延迟,所以我无法添加回调或错误。我现在遇到了一个小问题,因为我想等待队列中的某个消息,处理它并关闭反应器,即

channel.basic_ack(delivery_tag=delivery_tag)
reactor.stop()

当然,在发送消息之前,反应器会关闭。我正在通过延迟关机来解决这个问题

channel.basic_ack(delivery_tag=delivery_tag)
reactor.callLater(5, reactor.stop)

但这似乎是一种非常"笨拙"的方式。我希望能够做这样的事情:

d = channel.basic_ack(...)
d.addBoth(lambda x: reactor.shutdown())

我在这里错过了一些明显的东西吗?真的不可能将回调链接到确认调用的末尾吗?

因此,似乎唯一的选择是等待并希望确认已成功发送

相关内容

  • 没有找到相关文章

最新更新