我配置了一個(gè)簡(jiǎn)單的 SQS,並且我想一次處理 4 訊息。 在我的測(cè)試中,它有2條「可用」訊息。當(dāng)我收到訊息時(shí),一次只會(huì)產(chǎn)生 1 。我做錯(cuò)了什麼?
sqs = boto3.client('sqs') response = sqs.receive_message( QueueUrl=queue_url, MaxNumberOfMessages=4 )
您沒(méi)有做錯(cuò)任何事,這種行為是正常的。
這是由於 SQS(以及大多數(shù) AWS 服務(wù))的分散性質(zhì)造成的。基本上,並非所有節(jié)點(diǎn)都具有所有可用訊息,並且您與之交談的節(jié)點(diǎn)可能會(huì)傳回 0 到 MaxNumberOfMessages 之間的任何數(shù)字(如果有可用的話)。要在一次呼叫中實(shí)際接收多個(gè)訊息,您需要在佇列中有 100 或 1000 多個(gè)訊息,即使如此,您也可能會(huì)運(yùn)氣不好,收到的訊息很少。
來(lái)自文件: