很久以前,亞馬遜推出了長輪詢功能。並且,可以在隊列上配置「接收消息等待時間」參數。根據文檔,有效值落在0-20秒的範圍內。Amazon SQS「長輪詢」配置。服務器與客戶端
在客戶端,我們也可以配置在每個MessageReceiveRequest此參數。我正在使用適用於.NET的AWS開發工具包。
var receiveRequest = new ReceiveMessageRequest
{
QueueUrl = "https://queue-url-goes-here.com",
MaxNumberOfMessages = 10,
VisibilityTimeout = 30,
WaitTimeSeconds = 20 // This should tell if we want long polling or not
};
問題:
一個)什麼是之間的關係接收在隊列VS配置的WaitTimeSeconds屬性在消息組接收請求消息等待時間?他們會獨立工作嗎?或者,客戶端中設置的值將覆蓋隊列中設置的值(針對該單個請求)。
b)在某些情況下,C#客戶端可以超時嗎?我正在考慮將這兩個值設置爲最大值(20秒),但恐怕可能會導致C#長輪詢操作超時。
c)什麼是最佳做法。 WaitTimeSeconds>接收消息等待時間?