私たちのサーバーにはCPUがたくさんあり、リクエストハンドラーが並列処理を行う場合、一部のWebリクエストはより高速になる可能性があります.
例: N (約 1 ~ 20) 枚の写真に対して何らかの作業を行う必要があり、1 つの Web 要求を処理する必要があります。
リクエストが来る前にキャッシングしたり、何かをしたりすることはできません。
ハードウェアの複数の CPU を使用するためにできること:
- スレッド: 好きじゃない
- multiprocessing: すべてのリクエストで N 個のプロセスを開始する必要があります。新しいプロセスの開始とライブラリのインポートのために、多くの CPU サイクルが失われます。
- 処理の準備ができている N プロセスを備えた特別な (手作りの) サービス
- cellery (rabbitMQ): 通信オーバーヘッドがどのくらい大きいかわかりません...
- 他の解決策は?
プラットフォーム: Django (Python)