tornado long polling 如何保存要返回的 response 对象

2015-06-12 11:40:47 +08:00
 zzcflying

在tornado的demo中发现是用数组对象来保存response的,但是要是启动多个进程部署tornado的话,那应该怎么保存长连接的response对象呢。
我尝试使用redis来保存发现不可行。
求教各位大神有好的解决方案吗。

2739 次点击
所在节点    Python
5 条回复
realityone
2015-06-12 11:45:14 +08:00
。。没重度用过 tornado,pickle 后再保存看看
ipconfiger
2015-06-12 11:48:14 +08:00
还是存在本地的字典里,每次请求给分配一个id,然后redis里存response的id,回调的时候只有在本地字典里有这个id的进程返回就ok了
zzcflying
2015-06-12 12:13:40 +08:00
@ipconfiger 我现在是按照字典存的,user_id作为key,但是如果前端做个负载均衡的话,就会有可能找不到response了。
hellomsg
2015-06-12 12:25:12 +08:00
@zzcflying 你意思是不是前段做负载均衡连接到不同的服务器了?如果是修改负载均衡策略行不行?
binux
2015-06-12 12:26:05 +08:00
消息不要直接在进程内传输,long polling 的等待绑定到全局的一个东西,比如 redis 订阅上。每个进程负责自己的客户。消息广播到 redis 上。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/197955

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX