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