`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 接收消息
- 介紹
- 輪詢消費者
- 異步消費者