2015-10-13 69 views
1

我有一個4核心系統,並希望測試多進程龍捲風功能。我開始了我的計劃,這表明4個啓動進程:龍捲風多進程HTTPServer()

[I 151013 19:19:44 process:124] Starting 4 processes 

我的代碼是非常相似,有什麼文檔中列出:

server = HTTPServer(app) 
server.bind(8000) 
server.start(0) # Forks multiple sub-processes 
IOLoop.current().start() 

在我的主要處理我故意叫暫停。睡覺(10)來阻止這個過程。我的印象是,如果我將另一個客戶端連接到Web服務器並阻止該客戶端,它仍然會被服務,因爲有4個進程在端口上偵聽。直到我達到> 4個進程(假設它們全部仍然阻塞),客戶端必須等待連接。

但是當我測試這個時,第二個客戶端必須等待第一個客戶端解鎖。所以我不確定我是否理解在同一個端口上偵聽多進程的目的。我錯過了什麼嗎?爲HTTPServer分配多個進程的目的/優勢是什麼?

回答

1

聽起來就像您遇到了令人驚訝的瀏覽器行爲,在第一次嘗試Tornado時跳過許多用戶,請閱讀常見的"My code is asynchronous, but it’s not running in parallel in two browser tabs"

瀏覽器將認識到您正嘗試在兩個不同的選項卡中加載相同的頁面,並延遲第二個請求,直到第一個請求完成。

+0

啊是的,我錯過了那部分文檔。它適用於我使用不同的瀏覽器。乾杯傑西 –