Domanda

Ho un sito web con cui sto cercando di rimanere aggiornato e di ritagliarne alcuni contenuti ogni giorno. So che il sito viene aggiornato manualmente in un determinato momento e ho impostato pianificazioni cron per riflettere questo, ma poiché viene aggiornato manualmente potrebbe essere 10 o 20 minuti più tardi.

In questo momento ho un aggiornamento cron hack-ish ogni 5 minuti, ma mi piacerebbe usare la libreria differita per fare le cose in modo più preciso. Sto cercando di concatenare le attività differite in modo da poter verificare se c'è stato un aggiornamento e rinviare lo stesso aggiornamento per un paio di minuti se non ce n'è stato, e rinviare nuovamente se necessario fino a quando non c'è finalmente un aggiornamento.

Ho un po 'di codice che pensavo avrebbe funzionato, ma si differenzia sempre e solo una volta, quando invece devo continuare a rinviare fino a quando non c'è un aggiornamento:

(Sto usando Python)

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

Questo era ovviamente solo un estratto semplificato.
Ho pensato che fosse abbastanza semplice da funzionare, ma forse ho sbagliato tutto?

È stato utile?

Soluzione

L'esempio che dai dovrebbe funzionare bene. Devi aggiungere la registrazione per determinare se deferred.defer viene chiamato quando pensi che lo sia. Ulteriori informazioni potrebbero anche aiutare: come viene impostato siteHasNotBeenUpdated?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top