2016-12-25 41 views
0

ReceiveMessage呼叫最多可以從隊列返回10條消息(http://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html)。我正在使用長輪詢。最多可接收10條消息時設置SQS的可見性超時

我將遍歷收到的消息列表並在單個線程中處理它們。這是否意味着我應該將VisibilityTimeout設置爲(expected time to process single message) * 10

或者SQS是否爲我自動照顧這件事?如果是這樣,我也會好奇地瞭解這一點,因爲我一直無法在文檔中找到任何澄清。

回答

0

這是否意味着我應該設置VisibilityTimeout隊列是 (預計時間來處理單個消息)* 10

或者,也SQS照顧這對我來說是自動的?

不可能這會怎麼樣?一旦收到10條消息,SQS就無法看到你正在對他們做什麼。它不知道什麼構成了應用程序中每條消息的「處理」。所有SQS知道的是,它將10條消息傳遞給您的應用程序。

或者,將MaxNumberOfMessages設置爲1,以便您的應用程序每次只從SQS接收一條消息。

+0

RabbitMQ可以自動解決這個問題,通過假設連接是否已經終止,消息需要重新發送。在某些情況下,SQS更有意義並延長可見性超時。 – NeverEndingQueue