SQS:获取 SQS 队列中的消息数

SQS : Getting Number of message in the SQS Queue

我正在使用 Amazon-SQS,我尝试从队列中检索大约数量的属性,但响应为空

我正在使用 C# 以下是代码:

GetQueueAttributesRequest attReq = new GetQueueAttributesRequest();
attReq.QueueUrl = "Link to queue";
GetQueueAttributesResponse response = client.GetQueueAttributes(attReq);
Console.WriteLine("App. messages: "+ response.ApproximateNumberOfMessages);

我从请求中得到空响应,我确定队列中也有消息。

您必须从 GetQueueAttributes 中明确指定您想要 return 的属性。您没有指定任何内容,所以它没有 return 任何内容。

尝试简单地将 ApproximateNumberOfMessages 添加到 GetQueueAttributesRequest 上的 AttributeNames 集合:

GetQueueAttributesRequest attReq = new GetQueueAttributesRequest();
attReq.QueueUrl = "Link to queue";
attReq.AttributeNames.Add("ApproximateNumberOfMessages");
GetQueueAttributesResponse response = client.GetQueueAttributes(attReq);

备注:

  • 如果您使用的是旧版本的 AWSSDK,则此 属性 可能会被称为 AttributeName 而没有最后一个 s。看起来这在版本 1.x 和 2.x 之间发生了变化。
  • 可以在 API documentation
  • 中找到完整的属性列表