Python Tornado Websocket 处理程序在接收数据时阻塞
Posted
技术标签:
【中文标题】Python Tornado Websocket 处理程序在接收数据时阻塞【英文标题】:Python Tornado Websocket Handler blocks while receiving data 【发布时间】:2013-08-09 21:19:26 【问题描述】:我有两个非常简单的基于 Tornado 的 websocket 处理程序在同一个进程中运行,每个处理程序都可以正常运行。但是,当一个接收大量数据 (>8MB) 时,进程会阻塞,而另一个在接收到所有数据之前无法处理消息。有什么办法可以解决这个问题并防止龙卷风在这里阻塞?
【问题讨论】:
【参考方案1】:Tornado 可以很好地处理大量短并发请求。 它不会将长请求拆分为较小的请求。所以处理块。
为什么要使用套接字传递大量数据?最终解决方案取决于对这个问题的回答。
如果您不经常有大请求 - 只需在多个龙卷风实例前使用 haproxy。
【讨论】:
我最初尝试发送非常小的块,但我发现当我使用更大的块时整体速度更快。虽然不能消除问题,但按照您的建议运行多个龙卷风实例肯定会有所帮助。以上是关于Python Tornado Websocket 处理程序在接收数据时阻塞的主要内容,如果未能解决你的问题,请参考以下文章
python websocket_tornado_redis.py
同时使用 Python Tornado 后端、WebSocket 监听器和 MQTT 客户端
Python Tornado Websocket 处理程序在接收数据时阻塞