在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”是否成功执行?
如果没有抛出异常,则已成功发送发布。您应该考虑使用强制标志,并在RabbitMQ路由和排队您的消息时通知publisher confirms。 basic_publish
函数的成功只是等式的一部分。
我是Pika的维护者之一。将来,请考虑发布到pika-python
或rabbitmq-users
邮件列表。
注意:RabbitMQ团队监控rabbitmq-users
mailing list,有时只回答StackOverflow上的问题。