在tornado的demo中发现是用数组对象来保存response的,但是要是启动多个进程部署tornado的话,那应该怎么保存长连接的response对象呢。
我尝试使用redis来保存发现不可行。
求教各位大神有好的解决方案吗。
1
realityone 2015-06-12 11:45:14 +08:00
。。没重度用过 tornado,pickle 后再保存看看
|
2
ipconfiger 2015-06-12 11:48:14 +08:00
还是存在本地的字典里,每次请求给分配一个id,然后redis里存response的id,回调的时候只有在本地字典里有这个id的进程返回就ok了
|
3
zzcflying OP @ipconfiger 我现在是按照字典存的,user_id作为key,但是如果前端做个负载均衡的话,就会有可能找不到response了。
|
5
binux 2015-06-12 12:26:05 +08:00
消息不要直接在进程内传输,long polling 的等待绑定到全局的一个东西,比如 redis 订阅上。每个进程负责自己的客户。消息广播到 redis 上。
|