python - 如何识别送达通知中的消息?
问题描述
在 pika 中,我打电话channel.confirm_delivery(on_confirm_delivery)
是为了在消息成功传递(或传递失败)时得到通知。然后,我打电话channel.basic_publish
发布消息。一切都是异步执行的。
如何在on_confirm_delivery
调用回调时找到相关消息?在参数中,作为参数传递给回调的对象中唯一发生变化的信息是delivery_tag
,这似乎是一个自动递增的数字。但是,basic_publish
不返回任何交货标签。
换句话说,如果我调用basic_publish
了两次,我怎么知道当我收到一个确认时,是第一个消息还是第二个消息被确认了?
解决方案
从 RabbitMQ 文档中,我发现:
交付标签是单调增长的正整数,并由客户端库呈现。
因此,您可以在每个频道的代码中保持一个不断增长的整数,当频道打开时将其设置为 0,当您发布消息时将其增加。那么这个整数将与 相同delivery_tag
。
推荐阅读
- jquery - 在 Angular 6 中安装 bootstrap 和 jquery 时出错
- node.js - 在描述块中包含描述块,摩卡
- html - 将 div 放在不同宽度的图像中
- python - 重新缩放 3d numpy 数组中的值
- python - Python:如何确保类实例清理资源
- wordpress - 将带有获取参数的 url 更改为带有路径的 url。WordPress 网站
- php - 如何在pdf中使用图像
- ios - React Native:从 Expo 弹出后导航无法正常工作
- openlayers - openlayers的Modify.js中相邻的removeFeature和addFeature函数调用是否必要?
- c# - 谁能帮我用c#修复这个程序?