2015-01-17 105 views
0

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

实施例:因为服务器是当队列为大约100消息未决和在队列中的待决消息时它将再次接受消息忙于处理消息低于30 用户将收到错误消息在几分钟至再试..

我一直在寻找的SQS PHP的方法和我不看不到查看队列为工人当前大小或可用信息的任何方法 - http://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.Sqs.SqsClient.html

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

enter image description here

回答

3

使用client.getQueueAttributes('ApproximateNumberOfMessages')

BTW,排队的全部目的就是不要担心机器会发生怎样繁忙的工作中 - 只需将消息添加到队列中,让对方最终被处理。通过一切手段警告用户可能需要一段时间,但这并不意味着你不应该让他们提出他们的要求。

如果您的队列真的很大,请考虑添加更多的并行处理能力,例如通过Auto Scaling添加额外的EC2实例。

+0

感谢您的回答..关于您的建议使用EC2自动缩放不适用于我的情况,因为我的处理能力或我的工作人员是将消息转发给收件人的移动电话。 我会再次考虑如果我应该停止发送邮件的用户,或者让他们知道服务器正忙,他们的邮件将需要一段时间交付.. – mboy