如何验证 Pika 1.0.0 "basic_publish" 方法执行成功

How to verify that Pika 1.0.0 "basic_publish" method executes successfully

在 Pika 0.13.1 中,此代码按预期工作:

    if channel.basic_publish(exchange='exchange', routing_key='', properties=properties, body=message_as_string):
        pass
    else:
        raise RuntimeException("Fail!")

升级到 Pika 1.0.0 后,"basic_publish" 函数似乎不再是 return 布尔值,但我还没有弄清楚它 return 是什么(如果有的话),以及如何验证函数是否成功执行。根据我对 Pika 源代码的理解,我认为 basic_publish 没有 return 任何东西,而是在发生任何事情时引发异常。

有没有其他人想出办法来验证 "basic_publish" 是否成功执行?

如果没有异常,则发布成功。您应该考虑使用 mandatory 标志并启用 publisher confirms 以在您的消息被 RabbitMQ 路由和排队时收到通知。 basic_publish 功能的成功只是等式的一部分。

我是 Pika 的维护者之一。将来,考虑发布到 pika-pythonrabbitmq-users 邮件列表。


注意: RabbitMQ 团队监控 rabbitmq-users mailing list 并且有时只在 Whosebug 上回答问题。