Gevent pywsgi WSGIServer并发请求已排队

时间:2018-08-03 21:31:14

标签: python wsgi gevent

Gevent WSGI服务器无法处理并发请求。

我有一个简单的Hello world应用程序,并托管在Gevent WSGI服务器中。

我正在同时从两台不同的计算机发送并发请求,但是WSGI正在对最后一个进行排队,并且仅在第一个完成后才得到处理。

我希望看到数字以交错方式在控制台中打印。

有没有办法使服务器成为多线程?还是什么WSGI实现服务器能够处理多线程?

    from gevent import monkey; monkey.patch_all()
    from gevent.pywsgi import WSGIServer
    from gevent.pool import Pool

   def app(environ, start_response):
        print "\n\n*****Request Reached the Server*****\n"
        # To Test if the concurrent request prints in console 
        for i in range(39900000):
            print i,
        status = '200 OK'
        output = 'Hello World!\n'
        response_headers = [('Content-type', 'text/plain'),
                            ('Content-Length', str(len(output)))]
        start_response(status, response_headers)
        return [output]

    base_env = {'GATEWAY_INTERFACE': 'CGI/1.1',
                'wsgi.version': (1, 0),
                'wsgi.multithread': True, # XXX: Aren't we really, though?
                'wsgi.multiprocess': True,
                'wsgi.run_once': False}

    port = 8080
    server = WSGIServer(("", port), app, spawn=Pool(200), environ=base_env)
    server.serve_forever()

0 个答案:

没有答案