python-3.x - 如何验证 Pika 1.0.0 "basic_publish" 方法是否成功执行
问题描述
在 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 路由和排队时得到通知。该basic_publish
功能的成功只是方程式的一部分。
我是 Pika 的维护者之一。将来,考虑张贴到pika-python
或rabbitmq-users
邮寄名单。
注意: RabbitMQ 团队会监控rabbitmq-users
邮件列表,有时只会在 StackOverflow 上回答问题。
推荐阅读
- php - 亚马逊产品图片 URL 的 cURL 仅在 localhost 中有效
- python-3.x - get_queryset 不影响 django rest 框架 ModelViewSet 中的查询
- r-markdown - R Markdown - 交叉引用没有“kable”的HTML表格
- java - 获取java中矩阵中连续出现k次的所有数字
- r - 通过闪亮绘制交互式ggplotly图(当前产生一个空图)
- spring-boot - 谷歌作为授权服务器
- c# - ModernUI 程序集在我未修改的代码上引发了转换错误
- php - PHP 函数在 WP 前端与数据库中生成不一致的结果
- python - ModuleNotFoundError:Google App Engine 下没有名为“xhtml2pdf”的模块
- python - 如何保存在使用 scipy.optimize.minimize 最小化的目标函数中计算的中间变量