0

私は、最新の状態を保ち、そこから毎日いくつかのコンテンツをスクレイピングしたいと考えている Web サイトを持っています。サイトが特定の時間に手動で更新されることは知っており、これを反映するようにcronスケジュールを設定しましたが、手動で更新されるため、10分または20分後になる可能性があります.

現在、5 分ごとにハック風の cron 更新を行っていますが、遅延ライブラリを使用してより正確な方法で処理を行いたいと考えています。更新があったかどうかを確認し、更新がない場合は同じ更新を数分間延期し、最終的に更新があるまで必要に応じて再度延期できるように、延期されたタスクをチェーンしようとしています。

うまくいくと思ったコードがいくつかありますが、更新があるまで延期を続ける必要がある場合は、一度だけ延期します。

(私はPythonを使用しています)

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

これは明らかに単純化された抜粋にすぎません。
私はこれが機能するのに十分簡単だと思っていましたが、多分私はそれをすべて間違っていましたか?

4

1 に答える 1

2

あなたが与える例はうまくいくはずです。deferred.defer が呼び出されていると思われるときに呼び出されているかどうかを判断するには、ログを追加する必要があります。詳細情報も役立ちます: siteHasNotBeenUpdated はどのように設定されていますか?

于 2009-10-28T10:28:37.160 に答える