Как заставить Python / Nginx / FastCGI автоматически перекомпилировать код при его обновлении / изменении? - PullRequest
2 голосов
/ 19 марта 2011

Итак, я работал над своим первым проектом Django / Python, и мой рабочий сервер запущен и запущен. Мне было интересно, можно ли заставить Python / FastCGI (не совсем уверенный, кто отвечает за задачу) перекомпилировать мой код. На данный момент, когда я загружаю обновленный код, мне нужно перезапустить сервер, чтобы изменения вступили в силу. Я прочитал, что вы можете добавить какой-нибудь файл mysite.fcgi в lighttpd, чтобы он увидел, что вы обновили код, можете ли вы сделать то же самое для Nginx / FastCGI?

Ответы [ 2 ]

2 голосов
/ 20 марта 2011

для всех, кто интересовался моим вопросом ... это только частичное решение, но я нашел ответ здесь: Как изящно перезапустить django, запустив fcgi за nginx?

Вы можете просто запустить скрипт (я собираюсь немного его изменить), каждый раз, когда вы редактируете свой код, и он будет корректно перезапускать все без разрыва соединений.

1 голос
/ 19 марта 2011

Это общее руководство из проекта mod_wsgi, в котором описано, как вы можете отслеживать изменения кода с вашего app_wsgi.py и перезапустить текущий процесс, если какой-либо из модулей изменился. Вам необходимо перезапустить процесс Python, поскольку потоки, конкурирующие между модулями, могут означать, что недавно перезагруженный модуль имеет устаревшие ссылки из других модулей, которые все еще ожидают обнаружения для перезагрузки.

Если вам нужно что-то, что хорошо работает с приложениями nginx, Django и wsgi в целом, взгляните на Spawning в качестве сервера wsgi. Этот подход к перезагрузке кода настолько же изящен, насколько это возможно.

Он имеет отличную документацию, хорошо документированную модель обработки запросов, и он просто работает, что делает настройку такой простой. Вам понадобится менее пяти минут, чтобы ваш экземпляр Django работал на Spawning. Вот еще один тематический блог , чтобы ваши соки заработали.

...