RabbitMQ收到消息时的时间戳

时间:2017-07-19 06:52:33

标签: rabbitmq

当RabbitMQ收到消息时,有没有办法从时间中获取时间戳?在我们的应用程序中,我们想测量消息在队列中的持续时间:

time_in_queue=System.currentTimeMillis() - timestamp_from_msg

3 个答案:

答案 0 :(得分:0)

rabbitmq_message_timestamp插件执行此操作:

  

在a时添加时间戳的插件   消息首先进入RabbitMQ。

     

作者:RabbitMQ团队

     

Github:rabbitmq / rabbitmq-message-timestamp

答案 1 :(得分:0)

我更新了" rabbitmq-message-timestamp"插入。我的更改已合并,可以使用新标题" timestamp_in_ms"其中包含以毫秒为单位的时间戳。

答案 2 :(得分:0)

至少从 RMQ 5.10.0 开始,每条消息返回的属性对象上似乎都有一个 getTimestamp() 方法。

public class ExchangeConsumer extends DefaultConsumer {
    ...
    @Override
    public void handleDelivery(String consumerTag,
                           Envelope envelope,
                           AMQP.BasicProperties properties,
                           byte[] body) throws IOException {
        Date timestamp = properties.getTimestamp();
    }