本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
确认 Amazon SQS 队列为空
在大多数情况下,您可以使用长轮询来确定队列是否为空。在极少数情况下,即使队列中仍包含消息,您也可能会收到空响应,特别是在您在创建队列时为接收消息等待时间指定了较低的值时。本节将介绍如何确认队列为空。
确认队列为空(控制台)
-
阻止所有创建者发送消息。
通过以下网址打开 Amazon SQS 控制台:https://console.aws.amazon.com/sqs/
。 -
在导航窗格中,选择 Queues (队列)。
-
在队列页面,选择队列。
-
选择监控选项卡。
-
在“监控”仪表板的右上角,选择“刷新”符号旁边的向下箭头。从下拉菜单中,选择自动刷新。将刷新间隔保留为 1 分钟。
-
观察以下仪表板:
-
延迟的消息的大致数量
-
不可见消息的大致数量
-
可见消息的大致数量
当它们全部显示几分钟的
0
值时,队列为空。 -
确认队列为空(Amazon CLI、Amazon API)
-
阻止所有创建者发送消息。
-
重复运行以下命令之一:
-
Amazon CLI:
get-queue-attributes
-
Amazon API:
GetQueueAttributes
-
-
观察以下属性的指标:
-
ApproximateNumberOfMessagesDelayed
-
ApproximateNumberOfMessagesNotVisible
-
ApproximateNumberOfMessagesVisible
当它们全部为几分钟的
0
时,队列为空。 -
如果您依赖于 Amazon CloudWatch 指标,请确保在考虑该队列为空之前,看到多个连续的零数据点。有关 CloudWatch 指标的更多信息,请参阅Amazon 的可用 CloudWatch 指标 SQS。