1

同じタスクを 5 秒後に実行するようにスケジュールする task:recursive_task がありますが、何らかの理由でこのタスクがクラッシュした場合は、再度実行する必要があります。ほぼすべてのシナリオをキャッチしましたが、将来何が起こるかはわかりません。

最初に繰り返しタスクを作成しました:recursive_task のステータスをチェックし、それが長時間実行されなかったかどうか、および正常に完了したかどうかをチェックしますが、これは正しくありませんでした。では、この問題をどのように解決しますか?

4

2 に答える 2

1

acks_lateをCELERY_ACKS_LATEに設定してみてください。タスクが実行された後、タスクメッセージが確認されます。これにより、タスクをより簡単に再実行できる場合があります。

于 2011-10-18T13:18:58.587 に答える
0

Python シグナルを確認することをお勧めします。

http://docs.python.org/library/signal.html

import signal

# Set the signal handler and an alarm
signal.signal(signal.SIGALRM, handler)
signal.alarm(900) # 15 miutes
# some_function()

signal.alarm(0)          # Disable the alarm

どこ:

def handler(signum, frame):
    # do something
    sys.exit(1)

シグナルを使用すると、いつでも実行されるようにハンドラーを設定できます。次に、ハンドラーを介してスクリプトを再実行する簡単な方法です。

于 2011-10-18T12:54:53.103 に答える