我正在为我的公司产品创建一个网络聊天服务,这是一个本地社交网络,提供来自在线用户的大量并发连接。长轮询与Tornado一起使用在Python上。但是,当有很多非活动的长轮询连接(没有收到传入的消息)时,我应该关闭其中的一些。
我应该让长轮询连接停留多长时间? 1小时或最多1天?
答案 0 :(得分:3)
您必须将长轮询超时调整到实际的网络环境,例如,一些adsl调制解调器会在10分钟不活动后静默地丢弃连接。有些笔记本电脑可能会移动到另一个无线网络或进入睡眠状态等。
IMO在互联网上的实际公共用例不应超过5分钟。
如果您可以控制网络或同行,您可以考虑更长的超时;或者如果您有独立验证,客户仍在等待,例如通过来自同一会话的单独请求。
分析工作负载时,您可能会发现在超过一定阈值后,超时超时会带来非常小的性能提升。通常该阈值会非常小,然后使用它。