编程语言:python
后端框架:flask

from flask_restplus import Api, Resource
from flask_socketio import SocketIO
from eventlet import wsgi

# 前面代码省略
wsgi.server(eventlet.listen(('0.0.0.0', 8088)), app)

异常点在于,当使用eventlet启动app的时候,用户api请求不能多线程,一个requst必须在前一个request完成后才能执行。这个跟我的一个获取处理进度的功能块有冲突,导致我在执行数据处理时不能够再发起别的请求来查看处理进度。

因为我同时用到了flask_socketio,不确定原因到底是因为eventlet引起的还是flask_socketio。

查了很多资料,最后选择换了一种启动方式----gunicorn,完美解决问题,api正常多线程工作。

安装

pip install gunicorn

启动 (切换到项目目录下终端)

gunicorn project:app --preload -w 4 -b 0.0.0.0:8088

–preload用于打印详细报错信息

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐