1

私はこのDjangocronジョブスクリプトを持っています(私はそのためにkronosを使用しています。これは素晴らしいことです)。

このジョブを毎分トリガーするので、スクリプトの別のインスタンスがすでに実行されていないことを確認したいと思います。以前のジョブが実行されている場合は、現在の実行をスキップします。

私はロックファイルでそれを行うことができることを知っていますが、それはあまり信頼性がなく、実行の途中で再起動すると(ロックファイルをクリアする必要があります)、問題を引き起こす可能性があります。

Python(この場合はDjango)を使用してこれを行うための最良の方法は何ですか?

編集:私はLinuxをターゲットにしています。これを省略して申し訳ありません。

4

1 に答える 1

0

ここに Django アプリがあります: https://github.com/jsocol/django-cronjobs

として pip でも利用できますcronjobs

ピップに直接行く場合に備えて。次のようにデコレータを使用してジョブを登録します。

# myapp/cron.py
import cronjobs

@cronjobs.register
def periodic_task():
    pass

次に、次の方法でコマンドを実行します。

$ ./manage.py cron periodic_task

デフォルトでジョブロックがありますが、デコレータを適用するときに無効にすることができます:

@register(lock=False)
于 2013-04-19T06:22:12.117 に答える