如何验证Pika 1.0.0“ basic_publish”方法是否成功执行

时间:2019-04-12 11:52:18

标签: python-3.x rabbitmq pika

在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”函数似乎不再返回布尔值,但是我还没有弄清楚它到底返回了什么(如果有的话)以及如何验证该函数是否成功执行。基于对Pika源代码的理解,我认为basic_publish不会返回任何内容,而是在发生任何情况时引发异常。

是否有人想出办法验证“ basic_publish”是否成功执行?

1 个答案:

答案 0 :(得分:0)

如果未引发任何异常,则发布已成功发送。您应该考虑使用强制性标志,并让publisher confirms在RabbitMQ对消息进行路由和排队时得到通知。 basic_publish函数的成功只是方程式的一部分。

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


注意: RabbitMQ团队监视rabbitmq-users mailing list,并且有时仅在StackOverflow上回答问题。