我正在寻找一种最佳的方式来浏览/检查插入特定队列的最后一条消息。目前,我正在考虑ActiveMQQueueBrowser
。代码如下:
ActiveMQQueueBrowser browser = (ActiveMQQueueBrowser) session.createBrowser(queue);
Enumeration e = browser.getEnumeration();
TextMessage message = null;
while (e.hasMoreElements()) {
message = (TextMessage) e.nextElement();
}
但是这段代码需要遍历队列中的所有消息,直到给出最后一条消息。
请建议是否有任何其他方法这样做。
2条答案
按热度按时间nlejzf6q1#
JMX是否可行??请参阅下面的示例,您可以在将消息加载到列表中后按需对消息进行排序。
如果您的计数器始终可用且已连接,则另一种选择是使用http://activemq.apache.org/advisory-message.html
ActiveMQ.Advisory.消息已送达。队列传递给代理的消息。
ActiveMQ.Advisory.消息已送达。传递给代理的消息。
zlwx9yxi2#
如果不使用浏览器(或类似浏览器的东西)遍历所有其他消息,就无法获取队列中的最后一条消息。
请记住,队列不像数据库表。你不能只挑出你想要的信息。