Я читал здесь: https://code.google.com/p/modwsgi/wiki/ReloadingSourceCode
У нас есть приложение python, размещенное на большом количестве серверов с балансировкой нагрузки, и иногда требуется много времени, чтобы запрос поступил на сервер с низким приоритетом в балансировщике нагрузки. Это означает, что мы можем очень долго ждать (пока запускается демон wsgi на этом сервере) довольно долго после развертывания.
У меня есть исправление для этого при фактическом развертывании, но у нас также есть автоматический (плавный) перезапуск apache в массиве серверов. Перезапуск apache - это то же самое, что прикоснуться к моему файлу wsgi? Дождется ли wsgi, пока в этот конкретный демон поступит запрос на компиляцию и раскрутку, или он автоматически загружается при перезапуске apache?
Используйте предварительную загрузку для принудительной загрузки приложения при запуске процесса вместо того, чтобы полагаться на отложенную загрузку по умолчанию при первом запросе приложения.
Если вы используете достаточно новую версию mod_wsgi, вместо использования:
WSGIDaemonProcess xxx
WSGIProcessGroup xxx
WSGIApplicationGroup %{GLOBAL}
WSGIScriptAlias / /some/path/wsgi.py
Использование:
WSGIDaemonProcess xxx
WSGIScriptAlias / /some/path/wsgi.py process-group=xxx application-group=%{GLOBAL}
Предоставляя WSGIScriptAlias аргументы группы процессов и группы приложений, mod_wsgi будет точно знать, какую группу процессов демона и контекст субинтерпретатора приложение будет выполнять в конце, и поэтому может предварительно загрузить его при запуске.
Если вы используете очень устаревший дистрибутив со старой версией mod_wsgi, есть альтернативный способ сделать то же самое с помощью директивы WSGIImportScript.