ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
`AmqpTemplate`本身可用于轮询消息接收。 默认情况下,如果没有可用消息,则立即返回`null`; 没有阻塞。 从版本1.5开始,您现在可以设置一个`receiveTimeout`(以毫秒为单位),并且接收方法将阻塞最长时间,等待消息。 小于零的值意味着无限期地阻塞(或者至少在与代理的连接丢失之前)。 版本1.6引入了`receive`方法的变体,允许在每次调用时传递超时。 >由于接收操作为每条消息创建一个新的`QueueingConsumer`,因此该技术并不适用于大容量环境; 考虑使用异步使用者,或者对于这些用例使用零的`receiveTimeout`。 > 有四种简单的接收方法可供使用。 与发送方的Exchange一样,有一种方法需要在模板本身上直接设置默认队列属性,并且有一种方法在运行时接受队列参数。 版本1.6引入了变体以接受`timeoutMillis`以基于每个请求覆盖`receiveTimeout`。 ~~~ Message receive() throws AmqpException; Message receive(String queueName) throws AmqpException; Message receive(long timeoutMillis) throws AmqpException; Message receive(String queueName, long timeoutMillis) throws AmqpException; ~~~