【问题标题】:Python: Sharing data between instancesPython:在实例之间共享数据
【发布时间】:2014-01-19 06:15:29
【问题描述】:

我目前正在使用 Tornado Webserver 运行一个 python 应用程序。我使用 Supervisord 在不同的端口上启动 4 个 Tornado 实例。在这些之前,我正在运行 Nginx 以在服务器之间进行负载平衡。

问题是我已经实现了长轮询,这意味着我需要在不同的 Tornado 实例之间共享数据。

据我了解,当用户发送请求时,他会连接到其中一个龙卷风实例,但回调仅保存在该单个实例中,并且被推送的数据只会被推送到单个实例上的回调。

如何在实例之间共享回调?我一直在玩 Redis,这里的问题是我如何将回调保存在密钥库中?有没有更简单的方法?或者我如何在 Redis 中做到这一点?

我一直在看这个帖子,但他们并没有真正给我完整的答案:

Sharing data between multiple tornado instances

谢谢!

【问题讨论】:

    标签: python redis tornado


    【解决方案1】:

    你不能把回调放在redis中。相反,您将 数据 放在 redis 中,每个进程读取该数据并将其传递给自己的回调。

    【讨论】:

    • 好的,谢谢,这是有道理的。所以我需要创建一些东西,以便其他进程知道 Redis 或他们正在查看的特定区域/通道中何时有新数据?然后他们获取数据并将其发送到他们的回调,对吗?
    • 是的。在小范围内,您可以只拥有一个每个进程都监听的通道,但随着您的成长,您需要以某种方式细分数据。
    猜你喜欢
    • 2018-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-08
    • 2019-09-19
    • 2019-02-21
    • 2018-12-14
    • 1970-01-01
    相关资源
    最近更新 更多