Таким образом, я пытаюсь сделать больше веб-разработки в Python, и я выбрал cherrypy, размещенный lighttpd w/fastcgi. Но моим вопросом является очень простой: почему я должен перезапустить lighttpd (или апач) каждый раз, когда я изменяю свой код приложения или код для базовой библиотеки?
Я понимаю, что этот вопрос расширяет от основного mis (т.е. плохой) понимание fastcgi модели, таким образом, я открыт для любого обучения здесь, но я привык только к изменению файла PHP и этого разоблачение, по сравнению с необходимостью возвратить веб-сервер.
Любое осмеяние разъяснения / полезное осмеяние ценятся.
Это связано с производительностью. Для разработки удобно использовать автозагрузку. Но для добычи вы не хотите автозагружать. Это, на самом деле, узкое место в PHP, скажем, приличного размера. Каждый раз, когда вы заходите на PHP-страницу, сервер должен разобрать и загрузить каждую страницу с нуля. С помощью Python скрипт уже загружен и запущен после первого обращения.
Как было указано, в CherryPy есть настройка автозагрузки. Я бы порекомендовал использовать встроенный сервер CherryPy для разработки и использования Lighttpd в производстве. Это, скорее всего, сэкономит вам немного времени. Учебное пособие показывает, как это сделать.
.С точки зрения системного ПО-пишущего указателя: Все зависит от того, как организованы мета-данные о серверном процессе внутри вашего демона (lighttpd или fcgi). Некоторые программы предназначены только для однократной инициализации -- MOSTLY, что позволяет намного проще и эффективнее использовать внутреннюю модель программирования.
Часто очень сложно запрограммировать серверный процесс перезагрузки конфигурационных данных простым способом. Возможно, вам придется ввести замки и внешние объекты событий (сигналы в UNIX). Когда вы можете синхронизировать структуры данных по дизайну -- т.е. инициализируя только один раз ...., зачем усложнять вещи, делая модель данных модифицируемой несколько раз ?
.