ツールの使用法を示す django サイトがあります。私のビューの 1 つは、ファイルを入力として受け取り、外部の Python スクリプトを介してかなり重い計算を実行し、出力をユーザーに返します。ただし、ツールは同じ要求で出力を返すのに十分な速度で実行されます。ただし、サーバーが混雑しないように、この URL/ビューへの同時リクエスト数を制限したいと考えています。
これを行う方法に関するヒントはありますか?ページ自体は非常にシンプルで、使用率は低くなります。
ツールの使用法を示す django サイトがあります。私のビューの 1 つは、ファイルを入力として受け取り、外部の Python スクリプトを介してかなり重い計算を実行し、出力をユーザーに返します。ただし、ツールは同じ要求で出力を返すのに十分な速度で実行されます。ただし、サーバーが混雑しないように、この URL/ビューへの同時リクエスト数を制限したいと考えています。
これを行う方法に関するヒントはありますか?ページ自体は非常にシンプルで、使用率は低くなります。
mod_wsgi を使用していると仮定すると、プロセス/スレッドの数が少ない独自の mod_wsgi デーモン プロセス グループに委譲することを制限したい特定の URL を使用して、WSGI アプリケーションを複数の mod_wsgi デーモン プロセス グループにセグメント化できます。
WSGIDaemonProcess myapp processes=2 threads=10
WSGIDaemonProcess myapp-restricted threads=2
WSGIScriptAlias / /some/path/app.wsgi
WSGIProcessGroup myapp
<Location /some/specific/url>
WSGIProcessGroup myapp-restricted
</Location>
制限されたプロセスでこれら 2 つのスレッドにアクセスするためにキューに入れられた要求は、メインの Apache サーバーの子プロセスでワーカー スレッドを引き続き消費することに注意してください。したがって、必ずワーカー MPM (mod_php を使用しない) を使用し、通常のトラフィックと同様にバックアップされたリクエストを処理するのに十分なスペア スレッドで MPM を構成する必要があります。
これは、実際にはmod_wsgiに関する質問です。これを使用して、Apacheからアプリケーションを提供していると仮定します(そうでない場合は、実際にそうする必要があります)。
mod_wsgiの作成者であるGrahamDumpletonは、これらの部分をぶらぶらしていることがありますが、彼が現れるのを待っている間、すばらしいドキュメントを見ることができます。WSGIDaemonProcessディレクティブのいずれかの引数が、探しているものである可能性があります。