【问题标题】:Rabbitmq message arrival time stampRabbitmq 消息到达时间戳
【发布时间】:2023-11-20 21:27:01
【问题描述】:

有没有办法从消费者那里获取消息放入队列时的时间戳。 不是发布的时候,而是它真正进入队列的时候。

【问题讨论】:

标签: c# rabbitmq amqp


【解决方案1】:

不,没有办法解决这个问题,除非你声明自己为此编写了一个插件。 AMQP specification 中没有任何内容表明消息必须知道它何时到达队列。

从 AMQP 的角度来看,没有必要知道这一点。还有很多情况,消息可能会经过几个队列,那么哪个队列应该代表相关的时间戳呢?

【讨论】:

  • 即使您说消息可能会通过多个队列,我想要的只是消息仅放在该队列上时的时间戳。所以有一个明显的用例和时间戳的需求。
  • @Mani 这对我来说似乎并不明显。哪个应用程序需要知道?发布者、消费者还是其他?
【解决方案2】:

重复的问题有一个很好的答案https://*.com/a/33640262/1689049

截至 2015 年,原始问题有了新答案。

This plugin 将完全符合您的要求。

记住会有一些最小的开销,因为它会钩住 所有消息都在排队。

【讨论】:

  • 如果您认为它是重复的,请投票关闭而不是复制答案(它带有署名,所以我无意标记模组或称其为抄袭,但这不是一个好习惯。关闭问题如果你认为这是一个骗局)
  • @Zoe 你看,这个问题已经在另一个问题之前被问过了,并且有一个更新更好的答案。所以从技术上讲,另一个答案很好的问题是重复的。我们还想将此标记为骗子吗?
  • 如果是同样的问题,你可以要求他们merged。否则 close the bad one 重复