0

我正在编写一个使用 springboot java 框架与多个代理接口的应用程序。我正在利用 JMS 浏览/阅读超过 4 小时的消息。主要问题是尝试为此功能生成单元测试。这是因为测试必须向代理发送一条旧消息,并且根据我在此处阅读的文章,该文章解释了更改时间戳没有任何作用,因为一旦将消息发送到代理,它就会重置。基本上,这篇文章呈现了消息过时的任何可能性。有没有人有一些工作?或者知道我可以做到这一点的方法吗?

我已经尝试过设置 JMSTimestamp message.setJMSTimestamp(System.currentTimeMillis() - 14400000)。在运行时,它显示时间戳为 4 小时,但在 jconsole 中检查消息仅将其显示为当前日期/时间(例如Wed Apr 14 13:41:27 EDT 2021)。

4

1 回答 1

1

尝试模拟 4 小时后退用例的更好方法是使该时间(4 小时)可配置。并设置类似 10-15 秒的时间来运行旧消息的测试。您可以通过简单地发送消息并在阅读前等待 15 秒来做到这一点。

否则,当代理收到消息时,您的应用程序似乎以时间戳为中心,而不是生产者发送的时间戳。

于 2021-04-14T18:25:34.890 回答