rig*_*der 10 amazon-sqs amazon-web-services
我有一个SQS Queue消息由多个主机读取.我希望在处理完队列中的所有消息后运行一些工作(业务逻辑).
如何检查队列是否为空?
是的,我可以检查ApproximateNumberOfMessages和ApproximateNumberOfMessagesNotVisible排队属性,但这些是近似数字.我想在没有消息时停止我的主机轮询队列中的消息,然后运行所需的作业.
有任何想法吗?谢谢
您可以在轮询时简单地注意到来自 API 响应的空接收。关于 CloudWatch,还有另一个指标更适合于此。从文档:
空接收数
未返回消息的 ReceiveMessage API 调用次数。
单位:计数
有效统计数据:Average、Minimum、Maximum、Sum、Data Samples(在 Amazon SQS 控制台中显示为样本计数)
一些额外的信息:
我个人使用这个指标来设置一个 cloudwatch 警报,该警报将在连续几个时期的 NumberOfEmptyReceives > 0 的总和之后缩小托管我的轮询作业的自动缩放组。我喜欢做连续的周期,因为它更明显地表明队列不仅是空的,而且一直是空的。
| 归档时间: |
|
| 查看次数: |
9655 次 |
| 最近记录: |