1

かなり長い間、Web ホスティングのコントロール パネルになることを目標とするペット プロジェクトを開始したいと考えていましたが、主に Python ホスティングに焦点を当てていました。つまり、ユーザーが Django を生成/起動する方法を作りたいということです。 / パネルから直接他のフレームワーク プロジェクト。それを使ってアプリを構築するのに最適なツール、CherryPy を見つけたようです。

これにより、自分の好きなプログラミング言語で、独自の HTTP/HTTPS サーバーを使用してアプリを構築することができます。

しかし、ここで新たな疑問が生じます。CherryPy はスレッド化されたサーバーであるため、この種のタスクに適しているでしょうか?

時間のかかるタスクが多数あるため、タスクの 1 つがブロックされると、他のページにアクセスしようとしている残りのユーザーは待機状態になり、最終的にタイムアウトになります。

この種の問題は、フォーク ベースのサーバーでは発生しないと思います。

何をアドバイスしますか?

4

1 に答える 1

1

「スレッド」サーバーと「フォークベース」サーバーは同等です。「スレッド化された」サーバーには複数の実行スレッドがあり、1 つがブロックされた場合、他のスレッドは続行されます。「フォークベース」のサーバーには複数のプロセスが実行されており、1 つがブロックされても他のプロセスは続行されます。唯一の違いは、スレッド化されたサーバーはデフォルトでスレッド間でメモリを共有し、「フォーク ベース」のサーバーはデフォルトでメモリを共有しないことです。

もう1つのポイント-「サブプロセス」モジュールはスレッドセーフではないため、CherryPyから使用しようとすると奇妙なエラーが発生します. (これはPython Bug 1731717 です)

于 2008-12-01T11:54:45.633 に答える