请教一般如何解决简单 Flask API 服务器程序阻塞的问题?多端口多实例, wsgi,或者是 Flask 程序自身能解决?

2017-08-27 23:07:47 +08:00
 a251922581
Python 里用 Flask 写的 API 服务器端,程序就是对收到的用户名密码连接到本地 MySQL 查询一下是否正确然后返回授权信息。虽然正常情况下能很快处理一个请求,但是测试了下发现 Flask 的 API 函数是阻塞执行的。。在处理一个请求时其它的请求竟然就那么停着。。
搜了下资料,是不是要加什么 uwsgi 的,或者是那个 return jsonify() 函数可以做什么文章,异步返回吗?或者是在多个 Tcp 端口上开启多个 flask 实例,然后 Nginx 反向代理。。
小白求教。。
4300 次点击
所在节点    Python
8 条回复
misaka19000
2017-08-27 23:20:05 +08:00
flask 默认的 web server 是单线程的?这个还不是很清楚,不过默认的 web server 一般不推荐生产环境使用吧。具体用哪个 web server 我也不是很明白,楼下推荐一下。至于要不要 Nginx 来做个集群负载就看需要了。。
qile1
2017-08-27 23:36:55 +08:00
能参考下项目不?我是返回路径,多线程的。没有你那个现象,搜我贴有代码
est
2017-08-27 23:45:29 +08:00
LZ 下一个问题是如何改 mysql 配置让支持 1w 并发查询
wisej
2017-08-27 23:59:00 +08:00
Flask 自带的服务器只是方便调试的,文档说了不适合用来生产环境。
用 gunicorn 或者 uwsgi 就好。
lufficc
2017-08-28 00:33:40 +08:00
新鲜热乎的文章在 ,Ubuntu 上使用 uWSGI 和 Nginx 部署 Flask 项目
https://lufficc.com/blog/how-to-serve-flask-applications-with-uwsgi-and-nginx-on-ubuntu
knightdf
2017-08-28 10:13:28 +08:00
小接口我用的 tornado 做 flask 的 webserver
kitar
2017-08-30 15:35:29 +08:00
flask 启动的时候可以设置--progress 参数,可以设置允许的并发数
kitar
2017-08-30 15:36:37 +08:00
processes

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/386214

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX