[在皮卡中,我打电话给channel.confirm_delivery(on_confirm_delivery)
,以便在成功传递消息(或传递失败)时得到通知。然后,我呼叫channel.basic_publish
发布消息。一切都是异步执行的。
[如何,在调用on_confirm_delivery
回调时,如何找到相关消息?在参数中,作为参数传递给回调的对象中唯一更改的信息是delivery_tag
,它似乎是一个自动递增的数字。但是,basic_publish
不返回任何传递标签。
换句话说,如果我两次呼叫basic_publish
,当我收到确认消息时,我怎么知道它是被确认的第一条消息还是第二条消息?
从RabbitMQ文档中,我发现:
交付标签是单调增长的正整数,并由客户端库显示。
因此,您可以在每个通道的代码中保留一个递增的整数,当通道打开时将其设置为0,在发布消息时将其增加。然后,该整数将与delivery_tag
相同。