0
データを生成してDjangoのsave()
メソッドを使用してデータベースに保存するセロリタスクがあります。時にはそれを停止する必要があります。それはSIGTERM
を送信して行います。Djangoモデルsave()のSIGTERMへの耐性
私は、保存の途中でその信号を送信するのに不運になり、データベースやDjangoモデルで何らかの混乱を招くことがありますか?
データを生成してDjangoのsave()
メソッドを使用してデータベースに保存するセロリタスクがあります。時にはそれを停止する必要があります。それはSIGTERM
を送信して行います。Djangoモデルsave()のSIGTERMへの耐性
私は、保存の途中でその信号を送信するのに不運になり、データベースやDjangoモデルで何らかの混乱を招くことがありますか?
this threadによると、SIGTERM
はウォームシャットダウンを実行せず、混乱する可能性があります。
代わりにSIGINT
を使用してください。タスクが完了するのを待ってから終了します。
This threadも参考になります。
UPDATE:
SIGTERM
は終了信号あります。その意図は、正常に処理されるか否かにかかわらず、プロセスを強制終了することです。
SIGINT
は、であり、割り込み信号である。その意図は、秩序ある、優雅なシャットダウンの仕組みを提供することです。
希望すると助かります!
あなたは 'SIGINT'がタスクが完了するのを待つと言うでしょう。それは仕事が自然にやることではありませんか?実際にここで 'SIGINT'の目的は何ですか? – karlosss
@karlosss更新された回答を参照してください –
私たちは少しお互いが欠けていると思います。私はセロリ全体ではなく、実行中のセロリの仕事だけを殺したい。そのため、実際に*タスクが終了するのを待っているときに、 'SIGINT'の目的を失ってしまっています。 – karlosss