2008-12-01 59 views
1

相當長的一段時間,我想開始一個寵物項目,目標是在 時間成爲虛擬主機控制面板,但主要集中在Python託管 - 意思是我會喜歡讓用戶通過面板直接生成/啓動Django/ 其他框架項目。我似乎有 找到完美的工具來建立我的應用程序:CherryPy。CherryPy爲虛擬主機控制面板應用程序

這將允許我以我想要的方式進行操作,使用其自己的HTTP/ HTTPS服務器構建應用程序,並且還使用我最喜歡的編程語言。

但現在出現了一個新的問題:由於CherryPy是一個線程服務器,它會是這樣的任務的權利嗎?

將會有大量耗時的任務,所以如果其中一個 任務阻塞,其他用戶嘗試訪問其他頁面將會等待並最終超時。

我想這種問題不會發生在基於分叉的服務器上。

你會建議什麼?

+1

不知道你是否知道 - 但Webfaction.com曾經是:python-hosting.com和他們的面板做了很多你描述的。當然,CherryPy的創建者開始Webfaction :-) – torial 2008-12-01 17:27:00

回答

1

「Threaded」和「Fork based」服務器是等效的。一個「線程」服務器有多個執行線程,如果一個阻塞,那麼其他線程將繼續。 「基於分叉」的服務器有多個進程正在執行,如果其中一個阻塞,則其他進程將繼續。唯一的區別是線程服務器默認會在線程之間共享內存,「基於分支」的線程默認不會共享內存。

另一點 - 「子進程」模塊不是線程安全的,所以如果你嘗試從CherryPy使用它,你會得到更奇怪的錯誤。 (這是Python Bug 1731717

+0

你爲什麼沒有考慮到GIL? – webKnjaZ 2017-01-03 08:40:09