2017-09-23 77 views
-1

我们拥有SQS标准消息队列,并且其增长速度非常快。大部分时间我们都收到旧的通知。我们配置了消息保留期2天。 有没有什么办法以编程方式接收超过10条消息。 以下是我的代码来恢复亚马逊的SQS消息。如何以编程方式接收超过10个亚马逊SQS消息

private IEnumerable<Message> getMessagesFromQ(string accessKeyId, string secretAccessKey, string myQueueURL) 
    { 
     using (var amazonSQSClient = new AmazonSQSClient(accessKeyId, secretAccessKey, Amazon.RegionEndpoint.USWest2)) 
     { 

      ReceiveMessageRequest recieveMessageRequest = 
       new ReceiveMessageRequest(); 

      recieveMessageRequest.QueueUrl = myQueueURL; 
      recieveMessageRequest.MaxNumberOfMessages = 10; 

      ReceiveMessageResponse receiveMessageResponse = 
       amazonSQSClient.ReceiveMessage(recieveMessageRequest); 

      return receiveMessageResponse.Messages; 
     } 
    } 
+1

只需多次调用! –

+0

@JohnRotenstein 我们在发帖之前做了同样的事情。我想知道是否有其他方式(通过亚马逊建议,即任何其他方法)在一个请求中接收超过10条消息。 – Raj

回答

2

根据文档,每个请求10 is the maximum

要增加SQS中的消息处理吞吐量,通常会添加额外的队列读取器(假设您的实现可以支持此场景)。

+0

谢谢你的回复。 您能否详细说明“额外队列阅读器”? 我已经在loop.Is中调用getMessagesFromQ是否正确?或者其他任何有名的方式在那里? – Raj

+0

我的意思是,从多个线程(或多个服务器)调用getMessagesFromQ – g2server

+0

是的,自从昨天我们做了相同的 – Raj