使用下面给出的代码,您可以读取队列中已排队的所有消息 .
在此代码中,while循环是一个无限循环,它将迭代队列中的所有消息 .
一旦队列中没有消息,它将等待5秒钟,然后自动停止连接并中断循环 .
如果你需要一个无休止的消费者,它会在新添加到队列时读取所有消息,然后删除else部分,这样程序就不会终止 .
ConnectionFactory factory = new ActiveMQConnectionFactory("tcp://localhost:61616");
Connection con = factory.createConnection();
Session session = con.createSession(false, Session.AUTO_ACKNOWLEDGE);
Queue queue = session.createQueue("tmp_queue2");
MessageConsumer consumer = session.createConsumer(queue);
con.start();
while (true) {
Message msg = consumer.receive(5000);
if (msg instanceof TextMessage) {
TextMessage tm = (TextMessage) msg;
System.out.println(tm.getText());
}
else{
System.out.println("Queue Empty");
con.stop();
break;
}
}
希望这个消费者计划能够帮助那些不熟悉ActiveMQ的人 .