2017-06-07 3 views
0

私は、複数のクライアントからのファイルアップロードの多くを定期的に処理するdjangoアプリケーションを開発しています。各ファイルは約1〜10メガバイトです。Django - 一度に複数のファイルアップロードリクエストを処理しますか?

アップロードはスレッドのブロックであるため、uwsgiワーカー/プロセスの数(私の場合は4)に相当する数のリクエストしか処理できません。

スループットを向上させるにはどうすればよいですか?

uwsgiでプロセス/ワーカーの数を増やすことをお勧めしますか?
上限は何ですか?
このシナリオで使用できる他のソリューションはありますか?

スタック:django + uwsgi + nginxは、zipファイルの格納に使用されるamazon ec2およびs3バケットで動作します。

答えて

0

上限は何ですか?私は、このシナリオで使用することができ、他のソリューションは、サーバー

におけるコアの量としては、ハードウェアに依存し

ありますか?

Celery/rabbitMQの使用を検討してください。 Celeryは非同期でファイルをS3にアップロードしたり、S3にアップロードしたり、イベントをrabbitMQに通知したりできます。

1

一度に複数のファイルをアップロードするには、非同期タスクキューを使用する必要があります。 これらのタスクは、非同期に(バックグラウンドで)実行できます。

私はCelery/Disqueを使用してこれを実行しています。

読むについてDISQUE hereもっとhere

を参照してくださいあなたは

pip install django-queued-storage 

経由でそれを行うことができます

関連する問題