【问题标题】:Tornado multi-process mode: how can I send users to the same process?Tornado 多进程模式:如何将用户发送到同一个进程?
【发布时间】:2015-09-16 09:42:48
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: python tornado


    【解决方案1】:

    您无法使用 Tornado 的多进程模式或任何涉及多个进程都侦听单个端口的解决方案来执行此操作。相反,您需要在不同的端口上独立运行 Tornado 进程,并使用可以智能地将请求分发给它们的单独负载均衡器(例如,nginxip_hash 选项)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-09
      • 2012-10-17
      • 2016-09-01
      相关资源
      最近更新 更多