2017-09-08 13 views
0

データを生成してDjangoのsave()メソッドを使用してデータベースに保存するセロリタスクがあります。時にはそれを停止する必要があります。それはSIGTERMを送信して行います。Djangoモデルsave()のSIGTERMへの耐性

私は、保存の途中でその信号を送信するのに不運になり、データベースやDjangoモデルで何らかの混乱を招くことがありますか?

答えて

0

this threadによると、SIGTERMはウォームシャットダウンを実行せず、混乱する可能性があります。

代わりにSIGINTを使用してください。タスクが完了するのを待ってから終了します。

This threadも参考になります。

UPDATE:

SIGTERMは終了信号あります。その意図は、正常に処理されるか否かにかかわらず、プロセスを強制終了することです。

SIGINTは、であり、割り込み信号である。その意図は、秩序ある、優雅なシャットダウンの仕組みを提供することです。

希望すると助かります!

+0

あなたは 'SIGINT'がタスクが完了するのを待つと言うでしょう。それは仕事が自然にやることではありませんか?実際にここで 'SIGINT'の目的は何ですか? – karlosss

+0

@karlosss更新された回答を参照してください –

+0

私たちは少しお互いが欠けていると思います。私はセロリ全体ではなく、実行中のセロリの仕事だけを殺したい。そのため、実際に*タスクが終了するのを待っているときに、 'SIGINT'の目的を失ってしまっています。 – karlosss

関連する問題