Frage

Ich habe eine Website Suche mit bleiben aktualisiert und einige Inhalte von dort jeden Tag kratzen. Ich weiß, dass die Seite manuell zu einem bestimmten Zeitpunkt aktualisiert wird, und ich habe cron Zeitplan, dies zu reflektieren, aber da es aktualisiert wird manuell könnte es später 10 oder sogar 20 Minuten.

Im Moment habe ich ein Hack-ish cron-Update alle 5 Minuten, aber ich mag die zurückgestellte Bibliothek verwenden, um Dinge in einer präziseren Weise zu tun. Ich versuche Aufgaben Kette verschoben, damit ich überprüfen kann, ob es ein Update war und verschieben das gleiche Update ein für ein paar Minuten, wenn es keine gab, und verschieben wieder, wenn nötig, bis es endlich ein Update.

Ich habe einige Code, den ich dachte funktionieren würde, aber es aufschiebt immer nur einmal, wenn ich stattdessen einen Aufschub fortsetzen müssen, bis es ein Update:

(Ich verwende Python)

class Ripper(object):
    def rip(self):
        if siteHasNotBeenUpdated:
            deferred.defer(self.rip, _countdown=120)
        else:
            updateMySite()

Dies war nur eine vereinfachte Auszug offensichtlich.
Ich dachte, das war einfach genug, um zu arbeiten, aber vielleicht habe ich habe es einfach alles falsch?

War es hilfreich?

Lösung

Das Beispiel Sie geben sollte gut funktionieren. Sie müssen die Protokollierung hinzufügen, um festzustellen, ob deferred.defer genannt wird, wenn Sie denken, es ist. Weitere Informationen dazu beitragen würden, zu: Wie gesetzt siteHasNotBeenUpdated

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