django でのフォーム送信に応答して、長時間実行されるプロセスを開始する必要があります。次に、ajax を使用してポーリングし、ビューにプロセスの状態 (開始、停止、または実行中) を応答させたいと考えています。さらに、プロセスを停止できるようにしたい。
だから私の見解は次のようになります:
def start()
. . .
def stop()
. . .
def status()
. . .
この特定の質問は SO で何度も対処されていますが、私の状況は微妙に異なります。 完全に Pythonic であり、在庫の django にないものを必要とせず、データベースの使用を必要としないソリューションを探しています。
私が見つけた最も近いものはこの投稿です。私はコードを実装し、かなり合理化しましたが、request.session がグローバルではないことがわかりました (2 つのブラウザーが異なるセッションを持っています)。
request.session 以外のものを使用して start/stop/status 状態を保存することで問題を解決できるかもしれませんが、それが何であるかはわかりません。
私の読書で出くわした別の可能性はdjangoミドルウェアですが、これによると、
__init__() は、サーバーの起動時に 1 回だけ呼び出されます。個々の要求に対してではありません。
django のグローバルな状態について説明しているブログ記事もここにあります。何かご意見は?