1 つの URL でのみ実行する必要がある多くの django インストールがあります。だから私は次のような構造を持っています
- ジャンゴのインストール 1
ジャンゴのインストール 2
Django インストール N
私のルートディレクトリの下。
ここで、URL「www.mysite.com/installation1」からサブパート「installation1」を取得し、os.environ['DJANGO_SETTINGS_MODULE'] を「installation.settings」に設定して、リクエストを処理させます。"www.mysite.com/installation2" というリクエストについても、同じことをしなければなりません。ただし、django はサイト オブジェクト、AppCache などを内部的にキャッシュするため、django の内部キャッシュがクリアされるように、各リクエストの前に wsgi プロセスを再起動する必要があります。(パフォーマンスが良くないことはわかっていますが、心配していません)。上記のシーンを実装するために、以下のソリューションを実装しました。
- httpd.conf で WSGIDaemonProcess django processes=5 スレッド=1 として
django.core.handlers.wsgi で、def " call "に次の変更を加えました
if environ['mod_wsgi.process_group'] != '': import signal, os print 'Sending the signal to kill the wsgi process' os.kill(os.getpid(), signal.SIGINT) return response
私の仮定は、応答が送信された後、要求ごとにデーモンプロセスが強制終了されるということです。私のプロセスは、応答が送信された後にのみ強制終了されるというこの仮定を確認したいと思います。
また、この問題を解決できる別の方法はありますか
ありがとう
編集: MaxRequestsPerChild を 1 に設定するという提案の後、httpd.conf に次の変更を加えました。
キープアライブオフ
リッスン 12021 MaxSpareThreads
1
MinSpareThreads 1
MaxRequestsPerChild 1
ServerLimit 1
SetEnvIf X-Forwarded-SSL on HTTPS=1 ThreadsPerChild
1
WSGIDaemonProcess django プロセス=5 スレッド=1
しかし、リクエストごとにプロセスが再起動されません。プロセスが開始されると、リクエストの処理が続行されます。何か不足していますか?