

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 确认 Amazon SQS 队列为空
<a name="confirm-queue-is-empty"></a>

在大多数情况下，您可以使用[长轮询](sqs-short-and-long-polling.md#sqs-long-polling)来确定队列是否为空。在极少数情况下，即使队列中仍包含消息，您也可能会收到空响应，特别是在您在创建队列时为**接收消息等待时间**指定了较低的值时。本节将介绍如何确认队列为空。

**确认队列为空（控制台）**

1. 阻止所有创建者发送消息。

1. 通过以下网址打开 Amazon SQS 控制台：[https://console.aws.amazon.com/sqs/](https://console.aws.amazon.com/sqs/)。

1. 在导航窗格中，选择 **Queues** (队列)。

1. 在**队列**页面，选择队列。

1. 选择**监控**选项卡。

1. 在“监控”仪表板的右上角，选择“刷新”符号旁边的向下箭头。从下拉菜单中，选择**自动刷新**。将**刷新间隔**保留为 **1 分钟**。

1. 观察以下仪表板：
   + 延迟的消息的大致数量
   + 不可见消息的大致数量
   + 可见消息的大致数量

   当它们全部显示几分钟的 `0` 值时，队列为空。

**确认队列为空（AWS CLI、AWS API）**

1. 阻止所有创建者发送消息。

1. 重复运行以下命令之一：
   + AWS CLI: `[get-queue-attributes](https://docs.aws.amazon.com/cli/latest/reference/get-queue-attributes.html)`
   + AWSAPI –`[GetQueueAttributes](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_GetQueueAttributes.html)` 

1. 观察以下属性的指标：
   + `ApproximateNumberOfMessagesDelayed`
   + `ApproximateNumberOfMessagesNotVisible`
   + `ApproximateNumberOfMessagesVisible`

   当它们全部为几分钟的 `0` 时，队列为空。

如果您依赖于 Amazon CloudWatch 指标，请确保在考虑该队列为空之前，看到多个连续的零数据点。有关 CloudWatch 指标的更多信息，请参阅[亚马逊 SQS 的可用 CloudWatch 指标](sqs-available-cloudwatch-metrics.md)。