Модуль Python перезагружается для каждого запроса с помощью django и mod_wsgi - PullRequest
1 голос
/ 11 июня 2010

У меня есть переменная в init модуля, который загружается из базы данных и занимает около 15 секунд.

Для сервера разработки django все работает нормально, но похоже, что с apache2 и mod_wsgi модуль загружается при каждом запросе (занимает 15 секунд).

Есть идеи об этом поведении?

Обновление : я включил режим демона в моде wsgi, похоже, теперь он не перезагружает модули! нужно больше тестировать, и я буду обновлять.

Ответы [ 2 ]

3 голосов
/ 13 июня 2010

Вероятно, вы игнорировали тот факт, что во встроенном режиме mod_wsgi или mod_python приложение является многопроцессорным.Таким образом, запросы могут идти к разным процессам, и вы увидите задержку при первом обращении к процессу, который еще не был запущен.В режиме демона mod_wsgi по умолчанию используется только один процесс.Это или как кто-то еще упомянул, что у вас MaxRequestsPerChild установлено в 1, что является очень плохой идеей.

1 голос
/ 12 июня 2010

Полагаю, у вас было значение 1 для MaxClients / MaxRequestsPerChild и / или ThreadsPerChild в ваших настройках Apache.Поэтому Apache должен был запускать Django для каждого вызова mod_python.Вот почему это заняло так много времени.Если у вас есть демон wsgi, то перезапуск происходит только в том случае, если вы «дотрагиваетесь» до скрипта wsgi.

...