首页 > 解决方案 > AWS SQS 总是返回 1 条消息(PHP 开发工具包)

问题描述

我在使用 AWS SQS 的 receiveMessage 功能时遇到问题。它总是返回 1 条随机消息

        $result = $client->receiveMessage(array(
            'MaxNumberOfMessages' => 10,
            'MessageAttributeNames' => ['All'],
            'QueueUrl' => AConfig::sqs_query_url, // REQUIRED
            'WaitTimeSeconds' => 10,
        ));

请给个建议:(

还有一个问题:无论如何都要按 sender_id 过滤消息吗?

谢谢!

标签: amazon-web-servicesamazonaws-sdkamazon-sqs

解决方案


这是因为 AWS SQS 的性质。您的消息在一个队列中不是物理的,它们在内部分布在不同的队列中。

因此,文档说明如下:

[...] 如果队列中的消息数量很少(少于 1,000 条),您收到的消息很可能比每次 ReceiveMessage 调用请求的消息少。[...]

有关更多详细信息,请查看AWS SQS - 文档


推荐阅读