Angenommen, meine App enthält eine Seite, auf der Personen Kommentare hinzufügen können. Sagen Sie, nachdem jeder Kommentar hinzugefügt wurde, wird ein Task-Queue-Worker hinzugefügt. Wenn also 100 Kommentare hinzugefügt werden, werden 100 Einfügungen durchgeführt.google appengine/python: Kann ich mich darauf verlassen, dass die Wiederholung der Task-Warteschlange bei einem Fehler die Einfügungen auf ein Minimum beschränkt?
(Anmerkung: Die oben ist ein hypothetisches Beispiel, meine Frage zu illustrieren)
sage ich, dass die Anzahl von Einfügungen, um sicherzustellen, wollte ein gering wie möglich gehalten werden (so laufe ich nicht in die 10k Einfügung Grenze)
Konnte ich etwas wie folgt tun.
a) Da jeder Kommentar hinzugefügt wird Anruf taskqueue.add (name = "stickytask", url = "/ blah") - Da es sich um eine benannte taskqueue es nicht, wenn ein wieder eingesetzt werden taskqueue von Derselbe Name existiert.
b) Die/blah Arbeiter url liest die neu hinzugefügten Kommentare, verarbeitet die ersten und , als wenn mehr Kommentare vorhanden verarbeitet, um einen Statuscode andere als 200 kehrt zu werden - Dadurch wird sichergestellt, dass die Aufgabe erneut versucht wird, und beim nächsten Versuch wird den nächsten Kommentar und so weiter verarbeiten.
Also alle 100 Kommentare werden mit 1 oder ein paar Taskqueue Insertion verarbeitet. (Anmerkung: Wenn es eine Flaute in Tätigkeit, bei der keine neuen Kommentare hinzugefügt werden und alle Kommentare sind verarbeitet als die nächsten Kommentar hinzugefügt in einer neuen taskqueue Insertion führen wird.)
jedoch von der Dokumentation (siehe Code-Schnipsel unten) merkt es an, dass "das System sich allmählich zurückzieht". Bedeutet dies, dass auf jedem "nicht 200" Http Statuscode eine Verzögerung zurückgegeben wird, die in den nächsten Wiederholungsversuch eingefügt wird?
Aus der Dokumentation: Wenn die Ausführung einer bestimmten Aufgabe nicht (durch die HTTP-Statuscode andere als 200 OK zurückkehrt), wird App Engine erneut zu versuchen, versuchen, bis es gelingt. Das System wird schrittweise zurückgesetzt, um Ihre Anwendung nicht mit zu vielen Anfragen zu überschwemmen, aber es wird mindestens einmal pro Tag mindestens einmal am Tag eine fehlgeschlagene Aufgabe wiederholt.
Ist es wirklich "hacky & zerbrechlich"? Ich dachte, ich hörte Brett Slatkin sagen, dass er in dem Meetup-Talk, den er auf pubsubhubub gab, einen ähnlichen Ansatz verfolgte. Wenn jemand helfen könnte, dies zu bestätigen, wäre das großartig. Re: Cron-Job, der ein praktikabler Fallback ist, aber dies bedeutet in Wirklichkeit, "eine eigene Task-Queue zu erstellen" und Cron regelmäßig zu verarbeiten. – molicule
aber es bringt Sie um den Grenzwert/Tag, was der ganze Punkt ist, oder? –
Und da ich falsch verstanden habe, was der eigentliche Punkt der Frage war, werde ich hier erwähnen, dass Brett das Backup-Schema als "einfaches exponentielles Schema" in google io talk bezeichnete. –