用 gunicorn 启动 flask 应用,worker_class 选择 gevent, worker 选择3.我构造了一种场景。3个url对应的3个应用中,都添加while 循环,一直不返回。curl 访问这3个url。命令卡住。curl 访问另外一个正常的 url, 发现这个也卡住了。看到网上说 gevent 可以实现并行,提高 flask的性能,但感觉并未真正实现并行。只是 gunicorn 多起了几个进程,但如果这几个进程都被占用,服务还是无法访问。有同学知道 gevent 怎么实现真正的 flask 应用的并行访问嘛?、
你在flask源码里打上monkey patch就行了。
gevent
没用过。但是看介绍(以及名字)是async io的东东。这世界上有两种程序,一个是叫作CPU bound的。一个是叫作IO bound的。Async IO只对后者有效。而你的试验用了while loop
。恰恰是CPU bound的。因此可以预见gevent
没有起作用。需要另外设计实验。