3

そのため、現在、推奨エンジンを Django プロジェクトに追加する作業を行っており、ビュー関数の 1 つに対して (外部モジュールで) 重い処理を行う必要があります。一部のデータを読み込んで変換し、リクエストによって送信されたパラメーターに基づいて計算を実行し、提案をビューに返す必要があるため、これによりページの読み込み時間が大幅に遅くなります。これは、ビューがロードされるたびに実行する必要があります。

レコメンダーモジュールにデータをメモリにロードして変換させ、ビューからパラメーターが送信されるのを待ち、それらのパラメーターで計算を実行してからビューに送り返す方法があるかどうか疑問に思っていました。

どんな助けでも大歓迎です。

4

1 に答える 1

3

Celeryは、この種の作業に非常に優れたタスク キューです。

次のようなことができます。

  1. ユーザーが閲覧をリクエストする
  2. ビューは、面倒な作業を行う非同期タスクを開始し、すぐにユーザーに戻ります
  3. JavaScriptからポーリングして、タスクが完了したかどうかを確認し、完了したら結果をロードできます

あなたが探しているフローではないかもしれませんが、セロリは間違いなくチェックする価値があります セロリには素晴らしいdjangoパッケージもあり、非常に使いやすいです

あなたの質問を読み直して、レコメンデーション エンジンの周りにローカル Web サービスを作成することも可能だと思います。起動時にすべてのデータをメモリにロードできます。その後、django アプリからリクエストを送信できますか?

于 2013-01-30T16:34:21.857 に答える