首頁  >  問答  >  主體

AWS SQS ReceiveMessage 收到的訊息少於請求的訊息?

我配置了一個簡單的 SQS,並且我想一次處理 4 訊息。 在我的測試中,它有2條「可用」訊息。當我收到訊息時,一次只會產生 1 。我做錯了什麼?

sqs = boto3.client('sqs')
response = sqs.receive_message(
    QueueUrl=queue_url,
    MaxNumberOfMessages=4
)

P粉894008490P粉894008490274 天前385

全部回覆(1)我來回復

  • P粉654894952

    P粉6548949522023-12-25 00:08:37

    您沒有做錯任何事,這種行為是正常的。

    這是由於 SQS(以及大多數 AWS 服務)的分散性質造成的。基本上,並非所有節點都具有所有可用訊息,並且您與之交談的節點可能會傳回 0 到 MaxNumberOfMessages 之間的任何數字(如果有可用的話)。要在一次呼叫中實際接收多個訊息,您需要在佇列中有 100 或 1000 多個訊息,即使如此,您也可能會運氣不好,收到的訊息很少。

    來自文件

    回覆
    0
  • 取消回覆