Pregunta

Tengo un sitio web con el que quiero mantenerme actualizado y extraer algún contenido de allí todos los días. Sé que el sitio se actualiza manualmente en un momento determinado, y he establecido cronogramas cron para reflejar esto, pero dado que se actualiza manualmente, podría ser 10 o incluso 20 minutos más tarde.

En este momento tengo una actualización cron pirateada cada 5 minutos, pero me gustaría usar la biblioteca diferida para hacer las cosas de una manera más precisa. Estoy tratando de encadenar tareas diferidas para poder verificar si hubo una actualización y diferir esa misma actualización por un par de minutos si no hubo ninguna, y aplazar nuevamente si es necesario hasta que finalmente haya una actualización.

Tengo un código que pensé que funcionaría, pero solo difiere una vez, cuando necesito continuar diferiendo hasta que haya una actualización:

(Estoy usando Python)

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

Obviamente, esto era solo un extracto simplificado.
Pensé que esto era lo suficientemente simple como para funcionar, pero ¿tal vez lo he entendido todo mal?

¿Fue útil?

Solución

El ejemplo que da debería funcionar bien. Debe agregar el registro para determinar si se llama a deferred.defer cuando cree que lo es. También ayudaría más información: ¿cómo se configura siteHasNotBeenUpdated?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top