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

Har*_*ara 2 c# amazon-sqs amazon-web-services

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

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

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

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

Ant*_*ace 5

您必须明确指定要从 GetQueueAttributes 返回的属性。您没有指定任何内容,因此它没有返回任何内容。

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

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

笔记:

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