SQS:获取消息

时间:2015-01-17 10:04:10

标签: amazon-web-services queue amazon-sqs

我编写一个脚本来限制/控制每个队列达到某个阈值时的消息数量。我想在向其添加更多消息之前阅读队列中有多少可用消息。

实施例: 用户将收到一条错误消息,以便在几分钟后再次尝试,因为当队列大约有100条待处理的消息时,服务器正忙于处理消息,当队列中的待处理消息低于30时,它将再次接受消息。

我正在查看SQS PHP方法,我没有看到任何方法来查看队列的当前大小或工作人员的可用消息 - http://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.Sqs.SqsClient.html

有没有办法读取队列中可用的消息?

enter image description here

1 个答案:

答案 0 :(得分:3)

使用client.getQueueAttributes('ApproximateNumberOfMessages')

顺便说一句,排队的全部目的并不是担心机器的繁忙程度 - 只需将消息添加到队列中,它们最终会得到处理。通过各种方式警告用户可能需要一段时间,但这并不意味着您不应该让他们提出请求。

如果您的队列非常大,请考虑添加更多并行处理能力,例如通过Auto Scaling添加其他EC2实例。