我正在使用 activeMQ 记录一些东西。sender类的主要代码是这样的:
for (int i = 1; i <= 5; i++) {
TextMessage message = session.createTextMessage("ActiveMq send" + i);
System.out.println("send msg:" + "ActiveMq send" + i);
producer.send(message);
}
然后我使用另一个接收器接收来自发件人的 5 消息。
MessageConsumer consumer = session.createConsumer(destination);
while (true) {// loop to receive message
TextMessage message = (TextMessage) consumer.receive();
if (null != message) {
System.out.println("received msg:" + message.getText());
}
}
如果我这样写,我只能收到一两条消息,而不是 5。如果我使用consumer.receive(10000)
,我真的会收到 5 条消息,但如果发件人发送数百万条消息怎么办?如何在不丢失的情况下全部接收?