我正在编写一个脚本来限制/控制每个队列达到某个阈值时的消息数量。我想在向队列添加更多消息之前读取队列中有多少可用消息。
例子:
用户将在几分钟后收到一条错误消息以重试,因为当队列中有大约 100 条待处理消息时服务器正忙于处理消息,当队列中的待处理消息低于 30 条时,它将再次接受消息。
我正在查看 SQS PHP 方法,但没有看到任何方法可以查看队列的当前大小或工作人员的可用消息 - http://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.Sqs.SqsClient.html
有没有办法读取队列中可用的消息?
最佳答案
使用 client.getQueueAttributes('ApproximateNumberOfMessages')
顺便说一句,排队的全部目的不是担心机器碰巧有多忙——只需将消息添加到队列中,它们最终会得到处理。无论如何警告用户这可能需要一段时间,但这并不意味着您不应该让他们提出他们的请求。
如果您的队列非常大,请考虑增加更多的并行处理能力,例如通过 Auto Scaling 添加额外的 EC2 实例。
关于amazon-web-services - SQS : Get Message Available,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27998355/