编程语言
首页 > 编程语言> > Java-ActiveMQ:没有代理的起始使用者

Java-ActiveMQ:没有代理的起始使用者

作者:互联网

我正在编写一个从队列使用的JMS客户端.如果重要,我的经纪人为activemq.

一个要求是即使代理关闭,客户端也应该启动.在那种情况下,它应该表现得好像队列中没有消息,并且一旦代理启动并开始出现消息,它就会相应地表现.

问题是在我的代码中:

connectionFactory = new ActiveMQConnectionFactory(url);
Connection connection = connectionFactory.createConnection();
connection.start()

如果代理关闭,则它将卡在connection.start()中.虽然我想拥有的是connection.start(),使其静默返回并继续尝试在后台连接,并在可能的情况下使用消息,而在不可行的情况下保持安静.

我该如何实现.

解决方法:

使用单独的线程从队列中消费数据并启动连接.您将需要使用并发队列实现.

线程1:

>实例化队列
>启动线程2
>尝试连接/阻止
>将消息添加到队列

线程2(或某种类型的池):

>启动客户端
>从队列/块读取
>处理消息

标签:asynchronous,jms,activemq,messaging,java
来源: https://codeday.me/bug/20191208/2095269.html