gunicorn+gevent 怎么觉得未实现 flask 的真正并行。

用 gunicorn 启动 flask 应用,worker_class 选择 gevent, worker 选择3.我构造了一种场景。3个url对应的3个应用中,都添加while 循环,一直不返回。curl 访问这3个url。命令卡住。curl 访问另外一个正常的 url, 发现这个也卡住了。看到网上说 gevent 可以实现并行,提高 flask的性能,但感觉并未真正实现并行。只是 gunicorn 多起了几个进程,但如果这几个进程都被占用,服务还是无法访问。有同学知道 gevent 怎么实现真正的 flask 应用的并行访问嘛?、

MM们
浏览 1913回答 2
2回答

蛊毒传说

你在flask源码里打上monkey patch就行了。

MMMHUHU

gevent没用过。但是看介绍(以及名字)是async io的东东。这世界上有两种程序,一个是叫作CPU bound的。一个是叫作IO bound的。Async IO只对后者有效。而你的试验用了while loop。恰恰是CPU bound的。因此可以预见gevent没有起作用。需要另外设计实验。
打开App,查看更多内容
随时随地看视频慕课网APP