1

ユーザーが統計データを含むファイルをアップロードできるDjangoを使用してWebアプリケーションを作成しています。

データを適切に使用するには、データを処理する必要があります(各データセットは、処理が完了するまでに最大で数分かかる場合があります)。私のアイデアは、これにPythonスレッドを使用し、データ処理を別のスレッドにオフロードすることでした。

しかし、私はuwsgiを使用しているので、「Spoolers」と呼ばれる機能について読みました。それに関するドキュメントはかなり短いですが、私が探しているものかもしれないと思います。残念ながら、-Quwsgiのオプションにはディレクトリが必要であり、混乱を招きます。

とにかく、uwsgiのWebワーカーをブロックしないワーカースレッドのようなものを実装して、Djangoのデータベース/モデルにアクセスしながらバックグラウンドでデータを確実に処理できるようにするためのベストプラクティスは何ですか?代わりにスレッドを使用する必要がありますか?

4

1 に答える 1

1

すべてのオフロードサブシステムには、「実行すること」を格納するための何らかの「キュー」が必要です。

uWSGI Spoolerは、ディレクトリ内の各ファイルがタスクであるプリンタのようなアプローチを使用します。タスクが完了すると、ファイルが削除されます。他のシステムは、rabbitmqなどのより重い/高度なサーバーに依存しています。

最後に、スプーラの低レベルAPIを直接使用せず、デコレータに依存します。

http://projects.unbit.it/uwsgi/wiki/Decorators

于 2012-08-31T05:10:33.967 に答える