在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 上。 |