我目前正在使用Tornado Webserver运行python应用程序。我使用Supervisord在不同的端口上启动4个Tornado实例。在这些之前,我正在运行Nginx以在服务器之间进行负载平衡。
问题是我实现了长轮询,这意味着我需要在不同的Tornado实例之间共享数据。
据我了解,当用户发送请求时,他会连接到其中一个龙卷风实例,但回调仅保存在该单个实例中,而推送的数据将仅推送到单个实例上的回调。
如何在实例之间共享回调?我一直在玩Redis,这里的问题是我如何在key-store中保存回调?有没有更简单的方法?或者我如何在Redis中完成?
我一直在看这个帖子,但他们并没有给我完整的答案:
Sharing data between multiple tornado instances
谢谢!
答案 0 :(得分:1)
你不能把回调放在redis中。相反,您将数据放在redis中,每个进程读取该数据并将其传递给自己的回调。