5

そこで、Pythonでより多くのWeb開発を行おうとしています。そして、lighttpd w/fastcgiでホストされているcherrypyを選びました。しかし、私の質問は非常に基本的なものです。アプリケーションコード、または基盤となるライブラリのコードを変更するたびにlighttpd(またはapache)を再起動する必要があるのはなぜですか?

この質問は、fastcgiモデルの基本的な誤解(つまり、不十分な)に由来することを理解しているので、ここではどのような学校でも構いませんが、PHPファイルを変更するだけで表示されるので、バウンスする必要はありません。 Webサーバー。

どんな解明/有用な嘲笑もありがたいです。

4

2 に答える 2

8

これはパフォーマンスによるものです。開発には、自動リロードが役立ちます。ただし、本番環境では、自動リロードは必要ありません。これは、実際には、たとえばPHPの適切なサイズのボトルネックです。PHP Webページにアクセスするたびに、サーバーは各ページを最初から解析してロードする必要があります。Pythonでは、スクリプトは最初のアクセス後にすでにロードされて実行されています。

指摘されているように、CherryPyには自動リロード設定があります。開発にはCherryPy組み込みサーバーを使用し、本番環境にはlighttpdを使用することをお勧めします。それはおそらくあなたにいくらかの時間を節約するでしょう。チュートリアルでは、これを行う方法を示します。

于 2009-12-22T16:33:44.940 に答える
0

システムソフトウェアライターの視点から:これはすべて、サーバープロセスに関するメタデータがデーモン(lighttpdまたはfcgi)内でどのように編成されているかに依存します。一部のプログラムは、1回限りの初期化用に設計されています。ほとんどの場合、これにより、はるかに単純でパフォーマンスの高い内部プログラミングモデルが可能になります

多くの場合、サーバープロセスのリロード構成データを簡単な方法でプログラムすることは非常に困難です。ロックと外部イベントオブジェクト(UNIXのシグナル)を導入する必要がある場合があります。設計によってデータ構造を同期できる場合、つまり、一度だけ初期化する場合....データモデルを複数回変更可能にすることで物事を複雑にするのはなぜですか?

于 2009-12-22T16:24:41.620 に答える