Jms 如何阻止消费者
我制作了一个简单的Jms项目,有两个java文件名:MessageSender.java,MessageConsumer.java。一个用于向Activemq:Queue发送消息,另一个用于使用Activemq:Queue中的消息。在Apache Tomcat中部署了这个项目。下面的代码是消费者代码Jms 如何阻止消费者,jms,activemq,Jms,Activemq,我制作了一个简单的Jms项目,有两个java文件名:MessageSender.java,MessageConsumer.java。一个用于向Activemq:Queue发送消息,另一个用于使用Activemq:Queue中的消息。在Apache Tomcat中部署了这个项目。下面的代码是消费者代码 ActiveMQConnectionFactory connectionFactory=new ActiveMQConnectionFactory("admin","admin","tcp://l
ActiveMQConnectionFactory connectionFactory=new ActiveMQConnectionFactory("admin","admin","tcp://localhost:61617?jms.prefetchPolicy.queuePrefetch=1");
Connection connection=connectionFactory.createConnection();
final Session session=connection.createSession(true, Session.CLIENT_ACKNOWLEDGE);
Queue queue=session.createQueue("ThermalMap");
javax.jms.MessageConsumer consumer=session.createConsumer(queue);
//anonymous class
MessageListener listener = new MessageListener() {
@Override
public void onMessage(Message msg) {
// My business code
}
};
稍后,如果我想更改用户代码,我不想停止Tomcat,因为如果我停止Tomcat,整个jms项目都不应该工作。因此,客户端无法向Activemq:Queue发送消息。因此,我不想采用这种方式
我在想,如果我通过Activemq控制台页面阻止消费者。我不需要停止Tomcat,这样客户端就可以正常发送消息。为此,我检查了AMQ控制台页面,我没有看到任何消费者
这样做正确吗
如果这是正确的方法,我怎么能做到这一点
有人能推荐我吗
谢谢。调用MessageConsumer上的方法。如果我使用。关闭我的MessageConsumer在处理1条消息后将关闭。如果我想修改任何消费者代码,那么我只想停止消费者。我修改了我的问题。您能检查一下吗。@Hanumath您不需要在消息使用者中关闭它,您可以在其他地方关闭它。我可以从Activemq web控制台页面关闭使用者吗。如果不可能的话。我将在何处关闭。@Hanumath web控制台将关闭连接的代理端。您需要关闭端,并可能重新建立连接。您需要为此创建一些接口,例如网页/servlet或类似的接口。