Pergunta

Eu tenho um site que eu estou olhando para ficar atualizado com e raspar algum conteúdo de lá todos os dias. Eu sei que o site é atualizado manualmente em um determinado momento, e não tenho horários cron definido para refletir isso, mas uma vez que é atualizado manualmente poderia ser 10 ou mesmo 20 minutos mais tarde.

Agora eu tenho uma atualização de cron corte-ish a cada 5 minutos, mas eu gostaria de usar a biblioteca adiada para fazer as coisas de uma maneira mais precisa. Estou tentando tarefas cadeia adiada para que eu possa verificar se houve uma atualização e adiar essa mesma atualização um por alguns minutos, se não havia nenhum, e adiar novamente se for necessário até que haja finalmente uma atualização.

Eu tenho algum código eu pensei que iria funcionar, mas sempre apenas adia uma vez, quando ao invés disso eu preciso continuar adiando até que haja uma atualização:

(estou usando Python)

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

Este foi apenas um trecho simplificado obviamente.
Eu pensei que este era o suficiente simples de trabalho, mas talvez eu só tenho tudo errado?

Foi útil?

Solução

O exemplo que você dá deve funcionar muito bem. Você precisa adicionar o registo para determinar se deferred.defer está sendo chamado quando você pensa que é. Mais informações ajudaria também:? Set Como é siteHasNotBeenUpdated

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top