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

本文关键字:SQS 消息 队列 获取 | 更新日期: 2023-09-27 18:06:24

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

我使用c#,下面是代码:

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

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

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

您必须显式指定希望从GetQueueAttributes返回哪些属性。您没有指定任何值,所以它没有返回任何值。

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

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

指出:

  • 如果您使用的是较旧版本的AWSSDK,则该属性可能被称为AttributeName,不包含最后一个s。看起来这在版本1之间发生了变化。
  • 完整的属性列表可以在API文档中找到。