在单独的浏览器窗口上具有Gevent阻塞请求的Flask

2024-04-29 05:55:53 发布

您现在位置:Python中文网/ 问答频道 /正文

在下面的片段中,我有一个简单的web服务器在运行,它利用了Flask。似乎所有的请求都在等待前一个请求完成后才被处理。在

为了测试,我用Chrome的两个窗口指向本地主机:5000。第二个等待第一个请求完全完成。在

当我在“Incognito”中打开其中一个窗口或同时运行两个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()

Tags: fromimportjsonobjappflaskreturntime