Java amqpTemplate.convertand在3分钟后发送返回的错误消息

Java amqpTemplate.convertand在3分钟后发送返回的错误消息,java,spring,rabbitmq,spring-amqp,Java,Spring,Rabbitmq,Spring Amqp,我有两台机器在ha all模式下运行rabbitMQ。其中一台机器出现了版本3.3.5的错误情况,导致此链接中报告的“中断”非功能队列启动 在锁定队列的情况下,我的应用程序在尝试发送异步消息时遇到了问题。 我正在使用与spring amqp的直接交换 <dependency> <groupId>org.springframework.amqp</groupId> <artifactId>spring-rabbit</artifac

我有两台机器在ha all模式下运行rabbitMQ。其中一台机器出现了版本3.3.5的错误情况,导致此链接中报告的“中断”非功能队列启动 在锁定队列的情况下,我的应用程序在尝试发送异步消息时遇到了问题。 我正在使用与spring amqp的直接交换

<dependency>
   <groupId>org.springframework.amqp</groupId>
   <artifactId>spring-rabbit</artifactId>
   <version>1.4.3.RELEASE</version>
</dependency>
我们的日志中记录了3分钟的等待时间

2016-01-13 14:54:46,680 [REFID:] [DEBUG] [] [Service] Sending message to RabbitMQ using AmqpTemplate
2016-01-13 14:57:57,637 [REFID:] [ERROR] [] [Service] Error sending message to RabbitMQ

那么,有没有办法给方法amqpTemplate.convertAndSend设置一个超时?我试图在文档中找到timeout方法,但是connectionFactory只有一个超时。在一个异步的方法中,为什么它会被卡住这么长时间?

不确定我们是否能为您找到任何
超时
选项,但我相信最好按照Michael Klishin的建议升级到最新的RabbitMQ。是的,它已经升级了。谢谢你的评论。您知道是否有其他方法可以通过某种控制来转换和发送,以避免像本场景中报告的那样保存应用程序?您可以使用类似于
AsyncTaskExecutor.submit()的方法
并等待结果
未来的短时间超时。我曾考虑使用AsyncTaskExecutor,但我不认为这是更好的解决方法。不幸的是,没有这样的
套接字写入超时
选项。在任何地方
2016-01-13 14:54:46,680 [REFID:] [DEBUG] [] [Service] Sending message to RabbitMQ using AmqpTemplate
2016-01-13 14:57:57,637 [REFID:] [ERROR] [] [Service] Error sending message to RabbitMQ