问题
Is there a way to get the timestamp when a message was placed on the queue, from a consumer. Not when it was published, but when it actually made it to the queue.
回答1:
No there's no way to figure this out, unless, as you state yourself you write a plugin for this. There is nothing in the AMQP specification that says that the message must know when it arrived in the queue.
There is no need from the AMQP point of view to know this. There are also many cases when the message might pass through several queues and then which queue should represent the relevant timestamp?
回答2:
A duplicate question has a good answer https://stackoverflow.com/a/33640262/1689049:
As of 2015, there are new answers for the original question.
This plugin will do exactly what you were looking for.
Take in mind there will be some minimal overhead since it will hook all messages being queued.
来源:https://stackoverflow.com/questions/9216712/rabbitmq-message-arrival-time-stamp