<分区>
我在 PHP 中使用 AWS 开发工具包与 SQS 队列进行通信。目前队列中只包含简单的测试消息。我正在尝试从队列中读取接下来的 10 条消息。为此,我将 MaximumNumberOfMessages 设置为 10,并将 WaitTimeSeconds 设置为 20。
我对此的理解应该是 SqsClient 将连接并使用队列中的消息,直到它具有消息数 (10) 或达到超时 (20) 秒。
然而,客户端几乎立即返回并且只有 3-4 条消息(现在队列中有 +20 条消息)。当只有 4-5 条消息时,它只会返回一条消息。
我还将 VisibilityTimeout 设置为 1 秒,并且没有在循环中运行测试脚本,只是从 CLI 手动触发。
我传递给 SqsClient receiveMessage 的数组是:
[
'QueueUrl' => $this->uri,
'MaxNumberOfMessages' => 10,
'VisibilityTimeout' => 1,
'WaitTimeSeconds' => 20,
]
知道为什么调用没有等待至少 20 秒(对于少量队列消息),并且没有返回多条消息(对于更满的队列)吗?
谢谢