Frage

Die neueste Google App Engine-Version unterstützt eine neue Task Queue API in Python. Ich vergleiche die Möglichkeiten dieser API gegen die bereits vorhandenen Cron Service . Für Hintergrundjobs, die nicht vom Benutzer initiierte, wie Grabbing einen RSS-Feed und Parsen es auf einem tägliches Intervall sind. Kann und soll die Task Queue API für Nicht-Benutzer initiiert Anfragen verwendet werden, wie das?

War es hilfreich?

Lösung

Ich würde sagen, „Art“. Die Dinge, über Aufgabenwarteschlangen merken sind:

1) eine Grenze von Operationen pro Minute / Stunde / Tag ist nicht das Gleiche wie etwas in regelmäßigen Abständen zu wiederholen. Auch mit der Token-Bucket-Größe auf 1 gesetzt, glaube ich nicht, sind Sie garantiert, dass diese Wiederholungen gleichmäßig beabstandet sein. Es hängt davon ab, wie ernst sie sind, wenn sie sagen, dass die Warteschlange als Token-Bucket implementiert ist, und ob diese Aussage soll ein garantierter Teil der Schnittstelle sein. Da dieses Labor ist nichts garantiert noch.

2), wenn eine Aufgabe versagt, dann ist es requeued. Wenn ein cron-Job fehlschlägt, dann ist es angemeldet und nicht erneut versucht, bis es wieder fällig. So ein Cron-Job verhält sich nicht auf die gleiche Weise entweder als eine Aufgabe, die eine Kopie von sich selbst hinzufügt und dann erfrischt Futtermittel oder als eine Aufgabe, die Ihren Feed aktualisiert und fügt dann eine Kopie von sich selbst.

Es kann gut möglich sein, Aufgaben zu verspotten Cron-Jobs, aber ich bezweifle, es lohnt sich. Wenn Sie versuchen, um einen cron-Job zu arbeiten, die mehr als 30 Sekunden laufen dauert (oder trifft andere Anfrage Grenze), dann können Sie die Arbeit in Stücke geteilt, und einen Cron-Job haben, die die Stücke zu einem alles summiert Aufgabenwarteschlange. Es war die Rede (im GAE Blog?) Über asynchrone urlfetch, die die ultimative beste Weg sein könnte, RSS-Feeds zu aktualisieren.

Andere Tipps

Ich habe nicht die Unterschiede verstehen sehr gut, bis ich die Google I / O Video angeschaut, wo sie es erklären. Die offizielle Quelle ist in der Regel die besten.

Youtube Video

gleitet von der Präsentation

So wie ich es betrachte, ist, dass, wenn ich nur ein RSS bin Parsen ein cron-Job gut genug sein könnte füttern. Wenn ich zu X Anzahl von RSS-Feeds angegeben während der Laufzeit von einem Benutzer oder einer anderen Systemvariablen analysiert, dann würde ich Aufgaben wählt jedes Mal.

ich nur sagen, weil in der Vergangenheit habe ich mich ein sehr schlechtes Queuing-System beendet machen musste viele Benutzer definierten twitter sucht in regelmäßigen Abständen und mit Cronjobs excecute die Anforderungen auszuführen, die es zu lief benötigt - es hat nicht Maßstab, es ist nicht so und das kleinste Intervall geholfen hat, dass ein cron-Job ist nur 1 Minute sein kann (ich mehr Suche hatte als Minuten am Tag durchzuführen).

Die kühle Sache über Aufgaben ist, dass man ihnen eine ETA geben kann, so dass man sagen kann, ich möchte diese 47 Sekunden in der Zukunft ausgeführt werden soll, oder das möchte ich um 12:30 Uhr ausgeführt werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top