Bearbeitung SQS-Warteschlangen mit boto

Ich habe ein python-Skript mit Hilfe der boto-Bibliothek, die auf ec2-Instanz ist Teil eines autoskalierender Gruppe. Das Skript verarbeitet die Nachrichten aus einer SQS-Warteschlange:

import boto
from boto.sqs.message import Message

conn = boto.connect_sqs()
q = conn.create_queue('queue-name')

while (qin.count() > 0):
    m = q.get_messages()
    #do something with the message

Beinhaltet die Verwendung der while-Anweisung Sinn machen? Tut count() in Echtzeit aktualisiert, wie:

  1. andere Instanzen, die Nachrichten aus der Warteschlange (oder bin ich zu double up)
  2. neuen Nachrichten werden der Warteschlange Hinzugefügt (oder ich verpasse Sie?)

Wie Mach ich das Skript ständig hören für Ergänzungen der Warteschlange, obwohl die queue leer ist?

In dieser Frage Verarbeitung der Elemente in der SQS queue mit einem php-Skript es wurde erwähnt, dass " sqs-ruby client-Bibliothek verfügt über eine Methode "Umfrage", die kontinuierlich Umfragen der Warteschlange und auf den Empfang einer Nachricht in der Warteschlange geht es auf zu einem block'. Gibt es ein äquivalent in Python?

Es wurde auch vorgeschlagen, dass die SNS verwendet werden könnten, zu Benachrichtigen, die Skripte der message-queue-status, aber ich sehe nicht, wie Sie können für ein reaktionsschnelles system mit SNS als Metrik-Alarme sind nicht fein genarbtem genug.

  • Sie wissen, welche ruby-Bibliothek? Ich würde gerne einen Blick drauf werfen
  • nop, sorry, ich sah nur, dass es in der Frage oben verlinkten.
  • Kasse SNS - es ist besser zu schieben, dann zu ziehen. und Sie arbeiten wirklich gut zusammen docs.aws.amazon.com/sns/latest/dg/SendMessageToSQS.html
InformationsquelleAutor waigani | 2012-06-21
Schreibe einen Kommentar