fastcgi, cherrypy и python - PullRequest
       23

fastcgi, cherrypy и python

5 голосов
/ 22 декабря 2009

Итак, я пытаюсь больше заниматься веб-разработкой на python, и я выбрал cherrypy, размещенный на lighttpd w / fastcgi. Но мой вопрос очень простой: зачем мне нужно перезапускать lighttpd (или apache) каждый раз, когда я меняю код своего приложения или код базовой библиотеки?

Я понимаю, что этот вопрос исходит из базового неправильного (то есть плохого) понимания модели fastcgi, поэтому я открыт для любого обучения здесь, но я привык просто менять файл PHP и показывать его вместо отказов веб-сервера.

Любое разъяснение / полезное издевательство приветствуется.

Ответы [ 2 ]

8 голосов
/ 22 декабря 2009

Это из-за производительности. Для разработки автозагрузка полезна. Но для производства вы не хотите автоматически перезагрузить. Это на самом деле узкое место приличного размера, скажем, в PHP. Каждый раз, когда вы получаете доступ к веб-странице PHP, сервер должен анализировать и загружать каждую страницу с нуля. В Python скрипт уже загружен и работает после первого доступа.

Как уже отмечалось, CherryPy имеет настройку автозагрузки. Я бы рекомендовал использовать встроенный сервер CherryPy для разработки и использовать lighttpd для производства. Это, скорее всего, сэкономит вам время. В учебнике показано, как это сделать.

0 голосов
/ 22 декабря 2009

С точки зрения автора системного программного обеспечения: Все зависит от того, как метаданные о серверном процессе организованы в вашем демоне (lighttpd или fcgi). Некоторые программы предназначены только для однократной инициализации - MOSTLY , что позволяет значительно упростить и повысить производительность внутренней модели программирования.

Зачастую очень сложно запрограммировать процесс перезагружения данных конфигурации сервера простым способом. Возможно, вам придется ввести блокировки и внешние объекты событий (сигналы в UNIX). Когда вы можете синхронизировать структуры данных по проекту - то есть, только инициализируя один раз ... зачем усложнять ситуацию, делая модель данных модифицируемой несколько раз?

...