我目前正在使用 Tornado Webserver 运行 python 应用程序。我使用 Supervisord 在不同的端口上启动 4 个 Tornado 实例。在这些之前,我正在运行 Nginx 以在服务器之间进行负载平衡。
问题是我已经实现了长轮询,这意味着我需要在不同的 Tornado 实例之间共享数据。
据我了解,当用户发送请求时,他会连接到其中一个 Tornado 实例,但回调仅保存在该单个实例中,并且推送的数据只会被推送到单个实例上的回调。
如何在实例之间共享回调?我一直在玩 Redis,这里的问题是如何将回调保存在 keystore 中?有没有更简单的方法?或者我如何在 Redis 中执行此操作?
我一直在看这个帖子,但他们并没有真正给我完整的答案:
Sharing data between multiple tornado instances
谢谢!
最佳答案
你不能把回调放在redis中。相反,您将数据 放在redis 中,每个进程读取该数据并将其传递给自己的回调。
关于Python:在实例之间共享数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21210076/