对于少数交易,JMSTimestamp显示的时间比当前时间长

时间:2017-01-19 03:21:52

标签: spring spring-jms

我正在捕捉JMSlistener选择消息的时间与JMSTimestamp(生产者已发送的)之间的差异。当我计算这两个值之间的差异时。结果是负值。我想知道JMSTimestamp怎么可能是由生产者设定的,而不是消费者选择的时间。

有人可以帮我吗?

以下是我返回的监听器代码

@Override
public void onMessage(Message message) {

        try {
            log.info("====Time taken by Listener to read::==="
                    + (System.currentTimeMillis() - message
                            .getJMSTimestamp()) + " ms"); // I am getting negative value here

        } catch (JMSException e) {
            log.error("Error while reading the message", e.getMessage());
        }
}

1 个答案:

答案 0 :(得分:0)

发送器/接收器机器上的系统时钟很可能不同步。

除非您让时钟合理地同步(例如ntpd),否则您无法依赖这些时间戳。