码迷,mamicode.com
首页 > 其他好文 > 详细

让Flask处理异步请求

时间:2015-06-14 22:55:48      阅读:2416      评论:0      收藏:0      [点我收藏+]

标签:

今天意外在网上看到一篇文章,写到 

后端使用gunicorn+flask的方式,刚开始就直接使用flask跑,但是有一次就出现502了,发现由于flask是单进程处理请求的,不像Tornado的异步,同时访问的人数稍微过多,就会出现阻塞的情况,导致nginx出现502的问题


于是开始寻找flask处理异步请求的解决方案

首先 我不了解tornado的异步处理方式,有时间我会去了解一下

其次,我在实验里犯了一个错误,我随手用sleep(100)去做阻塞,造成的结果是整个进程被我挂起了,其实我只需要在视图函数里写一个死循环就解决这个小问题,但是一时大意,浪费了2个小时。

在这里要再次声明:不管是C语言还是Python ,Sleep都是让进程挂起的,只有在进程初始化阶段才应该去考虑使用

__author__ = ‘Brown‘
from flask import Flask
from flask.ext.script import Manager
app = Flask(__name__)
manager = Manager(app)
count = 0
@app.route(‘/‘)
def index():
    print "get"
    global  count
    print count
    count = count + 1
    print count
    if count < 2:
        while True:
            pass
    return "abc"
if __name__ == ‘__main__‘:
    manager.run()



代码其实很简单,第一个请求挂起,第二个请求不受第一个请求干扰。

f2.py runserver --host 0.0.0.0 --threaded



运行的时候加上threaded参数即可

(未完待续)


让Flask处理异步请求

标签:

原文地址:http://my.oschina.net/u/2007546/blog/466669

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!