amazon-web-services - SQS : Get Message Available

标签 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

最佳答案

使用 client.getQueueAttributes('ApproximateNumberOfMessages')
顺便说一句,排队的全部目的不是担心机器碰巧有多忙——只需将消息添加到队列中,它们最终会得到处理。无论如何警告用户这可能需要一段时间,但这并不意味着您不应该让他们提出他们的请求。

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

关于amazon-web-services - SQS : Get Message Available,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27998355/

相关文章:

python - 从 AWS Lambda/tmp 目录导入 python 包

amazon-web-services - 没有健康检查的aws负载均衡器?还是让它与非 200 响应一起工作?

java - 使用对象进行多重赋值

c - 了解 SLIST -queue.h

django - 为什么 CeleryCAM 不能与 Amazon SQS 一起使用?

docker - 如何访问触发部署为 Docker 镜像的 Lambda 的 SQS 事件?

从本地 R 客户端到 AWS 服务器上的 Rserve 主机的 Rserve 连接

amazon-web-services - 将 lambda 函数名称传递给 swagger 文件中的 uri

线程 : can't start new thread 中的 Python 异常

amazon-web-services - 带有 SQS 触发器的 AWS Lambda,SQS Lambda 目的地,从不添加到目的地队列