私はDjangoを使用して分類サービスを開発していますが、ユーザーはapiを使用してモデルを作成できますが、モデルの作成にはhttp://localhost/api/buildmodel
2時間程度の長い時間がかかり、作成結果を表示するためにWebページを使用しています。モデル。すぐに戻ってビルド終了後に結果を表示するために何かを行うようにDjangoプログラムを設計するにはどうすればよいですか?ajaxを使用できるかもしれませんが、非同期メソッドを使用したり、ビルド後にコールバック関数を呼び出したりするなど、Pythonで実装したいので、提案をいただければ幸いです。
2 に答える
3
タスクキューマネージャーを使用する必要があります。セロリは、Djangoで群を抜いて最も人気のあるタスクマネージャーです。アイデアは、このマネージャーにタスクを与え、それがタスクを処理し、それが完了すると、コールバック関数を起動できるということです。コールバック関数内で、ロジックを実行して、タスクが完了したことをユーザーに通知できます。
于 2013-02-25T03:29:46.957 に答える
0
これを行う1つの方法は、タスクの永続データベース(またはredisキー/値ペア)に、実行中か終了かを示す行を作成することです。タスクの開始時に実行され、タスクの完了時に実行される値をコードに設定させます。次に、AJAX呼び出しに、Webサービスを介してタスクのステータスを送信するURLでGETルックアップを実行させます。これをsetInterval()に入れて、データベースを定期的にポーリングして、データベースが実行されたかどうかを確認できます。完了時にメールを送信することも、実行中のタスクのステータスを示すランディングページ/ダッシュボードを作成することもできます。
于 2013-02-25T03:27:20.400 に答える