私は、Djangoで何らかのシャットダウンフックを使って解決したいと思う問題があります。Django Framework - 購読可能なシャットダウンイベントはありますか?
私はまだPython/Django開発の初心者であり、ブラウザで動作するCOMET/Reverse Ajaxスタイルのチャットサイトを開発するプロジェクトを自分で設定しています。ブラウザーはサーバーに継続的にメッセージをポーリングします。サーバーはポーリング要求を受信すると、待機中のメッセージがあるかどうかを確認し、存在しない場合は、すでに獲得されたオブジェクトのスレッドをロックで取得しようとします。これにより、メッセージを受信し、前述のロックが解放されるまで、要求を処理しているスレッドがブロックされます。
私の問題は、サーバをシャットダウンしたときに発生します。この時点で私は開発サーバー(python manage.py runserver)を使用しています。上記のプロセスからブロックされたスレッドがある場合、サーバーはシャットダウンしません。
サーバがシャットダウンを試みたときにコードを実行して、待機中のスレッドを解放できる方法はありますか?
私は以下を見てきましたsimilar questionしかしそれは私を助けませんでした。このようなイベントフックは存在しないとの推測があったが、決定的な答えはなかった。私は高いと低い、グーグルを探検したが、運がなかった。
私はPython 2.7とDjango 1.5を使用しています。任意の助けに感謝
私はシャットダウンイベントの知らない
これがどの程度正確に実装されているかどうか、そしてこれがうまくいくかどうかはわかりませんが、ただそこに置くだけです - すべてのスレッドが「ああ、私はおそらく止めるべきですか? – dmg
@DJV:しかし、そのメッセージを送るのはどうすればわかるのですか? –
dev-serverの 'Ctrl + C'(a.k.a.' KeyboardInterrupt')のための何らかのハンドルです。異なるサーバーの場合、おそらく異なるアプローチが考えられます。私はこれが一般的なアプローチではなく、Django経由ではないことを理解していますが、私は "私はただそこに投げているだけです"と言っています。 – dmg