2

私の django アプリケーションは apache+wsgi で実行されています。私の django アプリのモジュールの 1 つは、jpype 経由で Java ライブラリをロードする必要があり、この Java ライブラリはアプリケーションの性質上、初期化に時間がかかります。

問題は、apache+wsgi セットアップで django によって処理される http 要求ごとに、この Java ライブラリが再ロードされることです。ただし、開発 Web サーバー (python manager.py runserver 8000) で同じアプリを実行すると、これは発生しません。開発用 Web サーバーでは、Java ライブラリを 1 回だけロードします。

httpリクエストごとにJavaライブラリをリロードしないように、Apacheまたはmod_wsgi構成または私のdjangoアプリを変更する方法はありますか?

どうもありがとう。

アンディ

4

1 に答える 1

1

あなたは混乱している可能性があり、実際にはApache/mod_wsgi構成が貧弱です。具体的には、Apache prefork MPM で組み込みモードを使用している可能性があります。Apache は多くのシングル スレッド プロセスを使用し、そのすべてにコードをロードする必要があるため、これは好ましくありません。そのため、同じプロセスに対する各リクエストで発生していると思われますが、実際には、各リクエストは異なるプロセスにヒットしています。

mod_wsgi のデーモン モードを使用していること、およびコードがスレッド セーフであること、および単一のマルチスレッド プロセスを使用していることを確認してください。問題は発生しないはずです。

質問を編集し、Apache 構成ファイルから Apache/mod_wsgi 構成スニペットを追加し、使用している Apache MPM を記載します。

于 2011-08-22T12:21:29.357 に答える