python – 非阻塞并发wsgi服务器

我试图能够同时响应传入的Web请求,而处理请求包括相当长的IO调用.我打算使用gevent,因为它应该是“非阻塞的”

我发现的问题是,即使我有很多gevent线程,请求也会按顺序处理.由于某种原因,请求由单个绿色线程提供.

我有Nginx(认配置在这里我认为不相关),我也有uwsgi和简单的wsgi应用程序模拟IO阻塞调用gevent.sleep().他们来了:

uwsgi.ini

[uwsgi]
chdir = /srv/website
home = /srv/website/env
module = wsgi:app
socket = /tmp/uwsgi_mead.sock
#daemonize = /data/work/zx900/mob-effect.mead/logs/uwsgi.log
processes = 1
gevent = 100
gevent-monkey-patch

wsgi.py

import gevent
import time
from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
    t0 = time.time()
    gevent.sleep(10.0)
    t1 = time.time()
    return "{1} - {0} = {2}".format(t0,t1,t1 - t0)

然后我同时(几乎)在我的浏览器中打开两个标签,这是我得到的结果:

1392297388.98 - 1392297378.98 = 10.0021491051 
# first tab,processing finished at 1392297378.98

1392297398.99 - 1392297388.99 = 10.0081849098 
# second tab,processing started at 1392297398.99

如您所见,首先调用阻止执行的视图.我错了什么?

解决方法

使用curl或除浏览器之外的任何其他内容发送请求,因为浏览器对每个站点或每个地址的同时连接数有限制.或使用两种不同的浏览器.

相关文章

我最近重新拾起了计算机视觉,借助Python的opencv还有face_r...
说到Pooling,相信学习过CNN的朋友们都不会感到陌生。Poolin...
记得大一学Python的时候,有一个题目是判断一个数是否是复数...
文章目录 3 直方图Histogramplot1. 基本直方图的绘制 Basic ...
文章目录 5 小提琴图Violinplot1. 基础小提琴图绘制 Basic v...
文章目录 4 核密度图Densityplot1. 基础核密度图绘制 Basic ...