2013-03-26 150 views
3

我只想知道當我使用gunicorn服務器時,是否有可能在Django中運行和處理多個進程。用Gunicorn服務器處理Django中的多個進程請求

如果一個客戶端正在請求數據,並且同時其他客戶端請求相同,那麼這兩個進程應該同時執行而不是隊列。

有沒有其他的方法可以做到這一點?

回答

1

可以啓動多個工作進程:

gunicorn -w 4 ... 

這將創建4個過程,每個能同時處理一個請求。

你可能還使用了不同的工人的類型,比如geventmeinheld,使gunicorn處理請求異步:

gunicorn --worker-class=gevent ... 
gunicorn --worker-class="egg:meinheld#gunicorn_worker" ... 

對於那些過去兩年,你需要或者安裝gevent(居委版本之一)或meinheld

+0

2013-03-27 02:54:26 [關鍵]工人超時(pid:7454) – user1939565 2013-03-27 07:55:45

+0

工人超時的標準配置爲30秒,如果你的工人需要更多的時間(如果他們做,我想知道爲什麼......)你需要用'-t'來提高它。您也可以使用'--log-level = debug'來啓動gunicorn以獲取更多信息。 – robertklep 2013-03-27 07:58:48

+0

我得到這個錯誤,因爲請求無法在30秒內完成:2013-03-27 02:54:26 [4575] [CRITICAL]工作者超時(pid:7454) 服務器可以有多個請求並獲取數據可以需要時間這是不確定的。我無法定義--timeout,因爲我不知道所需的時間,因爲數據是通過telnet從其他服務器獲取的。 – user1939565 2013-03-27 08:01:52