我们有石英进程来轮询ActiveMQ JMS队列。
我们知道我们每分钟可以获得几条消息,只想以一分钟或更长时间的配置轮询速率响应最新消息。
我们不需要处理任何先前的消息。
有没有办法配置队列来获取此行为?
似乎主题有能力通过订阅恢复策略使用计数1来执行此操作。我们希望使用队列来保证(或多或少)单个传递消息。
或者我们的假设存在概念上的缺陷......
由于
答案 0 :(得分:0)
在我看来,没有标准的操作,所以你必须写一些代码......
一种可能的解决方案是将 QueueBrowser 与 QueueReceiver 一起使用:
通过 QueueReceiver ,您将获得队列中消息的枚举。对于每条消息,只要 hasMoreElements()返回true,您就可以在JMSMessageID上使用MessageSelector执行接收。最后一条消息将是您想拥有的消息....
答案 1 :(得分:0)
使用activemq时,可以在主题上使用“图像缓存”。其中一个设置是始终保持最后的消息发送..
查看订阅恢复策略设置:
http://activemq.apache.org/subscription-recovery-policy.html