2015-09-15 26 views
0

我有一個有狀態的概念Tornado應用程序,它使用戶(一個小用戶羣)能夠執行一些帶有潛在大內存對象的CPU綁定任務。這在單線程配置中會帶來問題,因爲一個用戶可能會影響另一個用戶的體驗。龍捲風多進程模式:如何將用戶發送到同一進程?

我可以使用多處理將任務傳送到另一個進程,但是這需要重複複製這些大數據並且不理想。

我發現龍捲風可以配置爲多進程。我認爲這會暫時解決我的問題;不同的用戶獲得不同的流程但是我發現,當與Web應用程序交互時,對象的引用會丟失。我認爲這是因爲Tornado每次調用API都會給我一個潛在的不同進程,而我之前與之交互的對象在當前進程中並不存在。

因此,我的問題:我可以配置Tornado到客戶端/用戶重複相同的過程?

回答

1

你不能用Tornado的多進程模式或任何涉及多個進程的解決方案在單個端口上進行偵聽。相反,您需要在不同的端口上獨立運行Tornado進程,並使用單獨的負載平衡器來智能地分配請求給它們(例如,nginxip_hash選項)