我正在捕捉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());
}
}
答案 0 :(得分:0)
发送器/接收器机器上的系统时钟很可能不同步。
除非您让时钟合理地同步(例如ntpd
),否则您无法依赖这些时间戳。