flask 阻塞,flask并发请求

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: