Tornado多进程模式:如何将用户发送到同一进程?

时间:2015-09-15 19:13:02

标签: python tornado

我有一个有状态概念的Tornado应用程序,它允许用户(小用户群)使用可能很大的内存中对象执行一些CPU绑定任务。这在单线程配置中造成问题,因为一个用户可能会影响另一个用户的体验。

我可以使用多处理将任务发送到另一个进程,但这需要重复复制这些大数据并且不太理想。

我发现Tornado可以配置为多进程。我认为这将暂时解决我的问题;不同的用户获得不同的流程但是,我发现在与Web应用程序交互时,对对象的引用会丢失。我假设它是因为Tornado每次API调用都会向我发送一个可能不同的进程,而我之前与之交互的对象在当前进程中不存在。

因此我的问题是:我可以重复将Tornado配置给同一个进程的客户端/用户吗?

1 个答案:

答案 0 :(得分:2)

您不能使用Tornado的多进程模式,或任何涉及多个进程全部侦听单个端口的解决方案。相反,您需要在不同的端口上独立运行Tornado进程,并使用可以智能地向其分发请求的单独负载均衡器(例如,nginx使用ip_hash选项)