flask 阻塞,flask并发请求
点安装事件
关于命名空间是一个计算机编程语言并发网络库,它使用了基于机制事件循环的一种绿色小鸟来提供一个高级同步API。下面是代码示例:
从gevent.wsgi导入WSGIServer
从您的应用导入应用
http_server=WSGIServer(( ,5000),app)
http_server.serve_forever()
代码清单下面放上瓶异步非阻塞的代码清单,以后需要用到的时候直接移植即可。
#编码=utf-8
# Python版本:3.5.1
#烧瓶
从烧瓶进口烧瓶,请求,克
# gevent
从命名空间进口猴子
从gevent.pywsgi导入WSGIServer
monkey.patch_all()
# g事件结束
导入时间
app=Flask(__name__)
app.config.update(DEBUG=True)
@app.route(/asyn/,methods=[GET])
def test_asyn_one().
打印( asyn有请求!)
时间。睡眠(10)
回复"你好asyn "
@app.route(/test/,methods=[GET])
定义测试():
返回"你好测试"
if __name__==__main__ :
# app.run()
http_server=WSGIServer(( ,5000),app)
http_server.serve_forever()
关于monkey.patch_all()为什么要加monkey.patch_all()这一条语句呢?在gevnet的官网有详细的解释,这里简单说明一下:
猴子补丁仔细的用并行代码副本替换标准窝模块的函数和类,这种方式可以使模块在不知情的情况下让命名空间更好的运行于多绿色通道环境中。
测试打开浏览器,首先请求http://127.0.0.1:5000/asyn/,然后
再请求http://127 .0 .0 .1:5000/测试/这个接口十次。如果是一般的瓶框架,后面的接口是没有响应的。
打印内容如下:
asyn有要求!
127 .0 .0 .1-[2016-10-24 20:45:10] GET/test/HTTP/1.1 200 126 0.000000
127 .0 .0 .1-[2016-10-24 20:45:11] GET/test/HTTP/1.1 200 126 0.000000
127 .0 .0 .1-[2016-10-24 20:45:11] GET/test/HTTP/1.1 200 126 0.000000
127 .0 .0 .1-[2016-10-24 20:45:12] GET/test/HTTP/1.1 200 126 0.000000
127 .0 .0 .1-[2016-10-24 20:45:12] GET/test/HTTP/1.1 200 126 0.000998
127 .0 .0 .1-[2016-10-24 20:45:13] GET/test/HTTP/1.1 200 126 0.001001
127 .0 .0 .1-[2016-10-24 20:45:14] GET/test/HTTP/1.1 200 126 0.000000
127 .0 .0 .1-[2016-10-24 20:45:14] GET/test/HTTP/1.1 200 126 0.001014
127 .0 .0 .1-[2016-10-24 20:45:15] GET/test/HTTP/1.1 200 126 0.001000
127 .0 .0 .1-[2016-10-24 20:45:15] GET/test/HTTP/1.1 200 126 0.000000
127 .0 .0 .1-[2016-10-24 20:45:18] GET/asyn/HTTP/1.1 200 126 10.000392
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。