使用Apache Artemis的JMS队列,如何只检索队列中的最后一条消息

时间:2017-08-02 15:05:57

标签: jms activemq-artemis

我目前正在使用Artemis ActiveMQ 2.2.0并且使用队列,我能够毫无问题地发送和接收消息。但是,我想知道如果队列中有多条消息,接收方如何才能检索最后一条消息?我应该使用任何特殊队列吗?谢谢,

2 个答案:

答案 0 :(得分:0)

使用JMS,您只能浏览队列直到最后一条消息,获取最后一条消息的JMSMessageID,然后使用JMSMessageID选择器将其从队列中拉出。

答案 1 :(得分:0)

如果你真的只关心"最后"队列中的消息然后我建议你利用最后一个值队列。它是一种特殊类型的队列,其中的消息具有相同的" last-value" message属性自动使用相同的属性替换队列中的旧消息,以便队列中具有该属性的唯一消息是" last"一个被发送。您可以在Artemis documentation

中详细了解相关信息