gpt4 book ai didi

java - 当其他消费者正在处理消息时,ActiveMQ onmessage 被阻塞

转载 作者:太空宇宙 更新时间:2023-11-04 06:25:31 25 4
gpt4 key购买 nike

我使用的是 ActiveMQ 5.6。我有两个消费者。当一个消费者通过 onmessage 方法接收消息时,其他消费者不会接收消息。意味着我希望第二个消费者能够在第一个消息的计算期间接收第二条消息。我尝试了很多方法但没有任何效果..

ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(user, password, url);
connectionFactory.setAlwaysSessionAsync(true);

connection = connectionFactory.createConnection();
connection.start();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Session session1 = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Destination destinationQueue1 = session.createQueue(dataQ);
Destination destinationQueue2 = session1.createQueue(dataQ);
NormalListener listener = new NormalListener();
NormalListener listener2 = new NormalListener();
MessageConsumer consumerData1 = session.createConsumer(destinationQueue1);
consumerData1.setMessageListener(listner1);

MessageConsumer consumerData2 = session1.createConsumer(destinationQueue2);
consumerData2.setMessageListener(listener2);




public class NormalListener implements MessageListener{
@Override
public void onMessage(Message message) {
try {
if (message instanceof TextMessage) {
TextMessage textMessage = (TextMessage) message;
String receivedMessage=textMessage.getText();
readMessage(message);
}
}
}
} catch (JMSException e) {
e.printStackTrace();
}
}
}

最佳答案

代码创建两个 session - session 和 session1 - 并且仅使用第一个 session ( session )来创建使用者。

尝试使用第一个 session 创建第一个使用者,并使用第二个 session 创建第二个使用者。我还会使用一致的命名,使用 session1 和 session2:

MessageConsumer consumerData1 = session1.createConsumer(destinationQueue1);
consumerData1.setMessageListener(listner1);

MessageConsumer consumerData2 = session2.createConsumer(destinationQueue2);
consumerData2.setMessageListener(listener2);
<小时/>

NormalListener 不是标准 JMS 类/接口(interface)。您可以尝试使用普通的 MessageListener 吗?

此外,您没有显示消息监听器的 onMessage() 方法中的代码。您是否检查了潜在的线程问题,并将其代码减少到最少以进行测试?

另请参阅:http://activemq.apache.org/multiple-consumers-on-a-queue.html

关于java - 当其他消费者正在处理消息时,ActiveMQ onmessage 被阻塞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26843990/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com