在下面的代码片段中,我运行了一个使用Flask的简单Web服务器。似乎所有请求都等待先前的请求在处理之前完成。
为了测试,我将Chrome中的两个窗口指向localhost:5000。第二个请求完全完成第一个请求。
当我在“隐身”中打开其中一个窗口时,不会发生这种情况。或同时运行两个curl命令时。
如果有人知道为什么两个单独的窗口被视为同一个连接(以及为什么隐姓埋名的窗口会被单独处理),我们将非常感激。
这是我的代码:
from gevent import monkey; monkey.patch_all()
monkey.patch_time()
from gevent.pywsgi import WSGIServer
from flask import Flask, Response, jsonify
import json
import time
app = Flask(__name__)
def toJson(obj):
return json.dumps(obj, indent=None, separators=(',', ':'))
@app.route("/")
def hello():
print 'Received Request'
time.sleep(5)
return Response(toJson({'hello': 'world'}), mimetype='application/json')
print 'Starting Server'
http = WSGIServer(('', 5000), app)
http.serve_forever()