модуль инициализации на django + mod_wsgi + apache - PullRequest
2 голосов
/ 22 августа 2011

Мое приложение django работает на apache + wsgi.Один из модулей в моем приложении django должен загрузить библиотеку Java через jpype, и эта библиотека Java занимает много времени для инициализации из-за своего характера приложения.

Проблема в том, что для каждого http-запроса, обрабатываемого django в настройке apache + wsgi, эта библиотека Java перезагружается.Однако этого не происходит, когда я запускаю свое приложение на веб-сервере разработки (python manager.py runserver 8000).На веб-сервере разработки он загружает библиотеку Java только один раз.

Есть ли способ изменить конфигурацию apache или mod_wsgi или мое приложение django, чтобы он не перезагружал мою библиотеку Java для каждого http-запроса?

Большое спасибо.

Энди

1 Ответ

1 голос
/ 22 августа 2011

Возможно, вы просто запутались и используете плохую конфигурацию Apache / mod_wsgi. В частности, вы, вероятно, используете встроенный режим с Apache prefork MPM. Это плохо, потому что Apache будет использовать множество однопоточных процессов, и поэтому код должен быть загружен во все из них. Вот почему вы, вероятно, думаете, что это происходит при каждом запросе к одному и тому же процессу, где в действительности каждый запрос затрагивает другой процесс.

Убедитесь, что вы используете режим демона mod_wsgi и ваш код является поточно-ориентированным, поэтому используйте один многопоточный процесс, и проблема не должна возникать.

Отредактируйте свой вопрос и добавьте свои фрагменты конфигурации Apache / mod_wsgi из файла конфигурации Apache и укажите, какой Apache MPM вы используете.

...