`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;
~~~
- 1.前言
- 2.介绍
- 2.1 快速浏览
- 3.参考
- 3.1 使用spring amqp
- 3.1.1 AMQP抽象
- 3.1.2 资源的连接和管理
- 介绍
- 配置底层客户端连接工厂
- RabbitConnectionFactoryBean和配置SSL
- 路由连接工厂
- 队列亲和力和LocalizedQueueConnectionFactory
- 发送确认和返回
- 3.1.3 添加自定义客户端连接属性
- 3.1.4 AmqpTemplate
- 介绍
- 添加重试功能
- 发送消息是异步的 - 如何检测成功和失败
- 发布的确认和返回
- 3.1.5 发送消息
- 介绍
- 消息构建 API
- 发布的返回
- 3.1.6 接收消息
- 介绍
- 轮询消费者
- 异步消费者