如何识别送达通知中的消息?

How to identify the message in a delivery notification?

在鼠兔中,我调用了channel.confirm_delivery(on_confirm_delivery)以便在消息传递成功(或传递失败)时得到通知。然后,我调用 channel.basic_publish 来发布消息。一切都是异步执行的。

如何在调用on_confirm_delivery回调时找到关注的消息?在参数中,作为参数传递给回调的对象中唯一变化的信息是delivery_tag,这似乎是一个自动递增的数字。但是,basic_publish 没有 return 任何送货标签。

换句话说,如果我调用 basic_publish 两次,当我收到确认消息时,我怎么知道是第一条消息还是第二条消息被确认?

从 RabbitMQ 文档中,我发现:

Delivery tags are monotonically growing positive integers and are presented as such by client libraries.

因此,您可以在每个频道的代码中保留一个不断增长的整数,当频道打开时将其设置为 0,当您发布消息时将其增加。然后这个整数将与 delivery_tag.

相同