在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”是否成功执行?
答案 0 :(得分:0)
如果未引发任何异常,则发布已成功发送。您应该考虑使用强制性标志,并让publisher confirms在RabbitMQ对消息进行路由和排队时得到通知。 basic_publish
函数的成功只是方程式的一部分。
我是Pika的维护者之一。将来,请考虑发布到pika-python
或rabbitmq-users
邮件列表中。
注意: RabbitMQ团队监视rabbitmq-users
mailing list,并且有时仅在StackOverflow上回答问题。