2017-09-23 3 views
-1

Wir haben SQS Standard Message Queue und es wächst sehr schnell. die meiste Zeit empfangen wir alte Benachrichtigung. Wir haben die Nachrichtenaufbewahrungsperiode für 2 Tage konfiguriert. Gibt es eine Möglichkeit, programmgesteuert mehr als 10 Nachrichten zu empfangen. Folgendes ist mein Code, um SQS-Nachrichten von Amazon wiederzubeleben.Wie Sie mehr als 10 amazon SQS-Nachricht programmgesteuert empfangen

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

Ruf es einfach mehrmals an! –

+0

@JohnRotenstein Wir taten das gleiche.vor dem Posten. Ich möchte wissen, gibt es einen anderen Weg (vorgeschlagen von Amazon, d. H. Jede andere Methode), mehr als 10 Nachrichten in einer Anfrage zu erhalten. – Raj

Antwort

2

Gemäß der Dokumentation, 10 is the maximum pro Anfrage.

Um den Durchsatz der Nachrichtenverarbeitung in SQS zu erhöhen, werden normalerweise zusätzliche Warteschlangenleser hinzugefügt (vorausgesetzt, Ihre Implementierung kann dieses Szenario unterstützen).

+0

Vielen Dank für Ihre Antwort. Können Sie bitte "Extra Queue Reader" ausarbeiten? Ich habe getMessagesFromQ in der Schleife aufgerufen. Ist das korrekt? Oder ein anderer bekannter Weg ist da? – Raj

+0

Ich meine, rufen Sie getMessagesFromQ aus mehreren Threads (oder mehreren Servern) – g2server

+0

Ja, seit gestern machen wir das gleiche – Raj

Verwandte Themen