Вопрос

У меня есть веб-сайт, который я хочу обновлять и каждый день очищать контент оттуда. Я знаю, что сайт обновляется вручную в определенное время, и я настроил расписание cron, чтобы отразить это, но, поскольку он обновляется вручную, это может произойти через 10 или даже 20 минут.

Сейчас я обновляю cron для взлома каждые 5 минут, но я бы хотел использовать отложенную библиотеку для более точного выполнения задач. Я пытаюсь объединить отложенные задачи, чтобы проверить, было ли обновление, и отложить то же самое обновление на пару минут, если его не было, и снова отложить, если это необходимо, до тех пор, пока, наконец, не произойдет обновление.

У меня есть код, который, как я думал, будет работать, но он откладывается только один раз, когда вместо этого мне нужно продолжать откладывать до обновления:

(я использую Python)

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

Это был просто упрощенный отрывок.
Я думал, что это достаточно просто для работы, но, может быть, я все неправильно понял?

Это было полезно?

Решение

Пример, который вы приводите, должен работать очень хорошо. Вам нужно добавить протоколирование, чтобы определить, вызывается ли deferred.defer, когда вы думаете, что это так. Также может помочь дополнительная информация: как установить siteHasNotBeenUpdated?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top