До сих пор я следил за этим советом, чтобы перезагрузить код:
https://code.google.com/archive/p/modwsgi/wikis/ReloadingSourceCode.wiki
Это имеет недостаток, что изменения кода обнаруживаются только каждые N секунд. Я мог бы использовать N = 0,1, но это приводит к бесполезному диску IO.
AFAIK обратный вызов inotify ядра linux доступен через python.
Есть ли более быстрый способ обнаружить изменения кода и перезапустить обработчик wsgi?
Мы используем режим демон в linux.
Почему перезагрузка кода для mod_wsgi вообще
Есть интерес к тому, почему я хочу этого вообще. Вот моя настройка:
Большинство людей используют "manage.py runserver
" для разработки и некоторые другие wsgi развертывание для производства.
В моем контексте мы автоматизировали создание новых систем, а системы prod и development в основном идентичны.
Одна операционная система (linux) может принимать N-системы (виртуальные среды).
Разработчики могут использовать runerver или mod_wsgi. Использование runerver имеет то преимущество, что легко отлаживать, mod_wsgi
имеет то преимущество, что вам не нужно сначала запускать сервер.
mod_wsgi имеет преимущество, что вы знаете URL: https://dev-server/system-name/myurl/
С сервером-сервером вы не знаете порт. Случай использования: вы хотите связать внутреннюю wiki с dev-system....
Грязный взломать перезагрузку кода для mod_wsgi, который мы использовали в прошлом: maximum-requests=1
, но это медленно.