小编Tri*_*lpe的帖子

Heroku上的Flask:对于大型POST数据,request.form非常慢?

我正在使用带有eventlet工作人员的gunicorn在Heroku上运行Flask应用程序.我的应用程序上的特定路径经常接收POST数据(x-www-form-urlencoded),其中包含一些相当粗糙的字段 - 最多为500KB.

这在本地运行时工作正常,但在Heroku上,对该路由的请求需要5到30秒才能完成 - 几乎100%的时间花在第一次访问request.form上:

t = time.time()
action = str(request.form['action'])
dt = time.time() - t  # Often 10 seconds or more!
Run Code Online (Sandbox Code Playgroud)

Newrelic慢速请求跟踪也证实了这一点.数据库操作在这里或那里有几毫秒,然后在Python代码中花费了大量时间,显然花在等待某些i/o上,因为报告的CPU时间通常小于一毫秒.

我完全无法在本地环境中使用我在生产中使用的相同gunicorn/eventlet设置重现这一点.甚至内置的调试WSGI服务器对这些请求都是闪电般快速的.

有谁知道可能出了什么问题?这是Flask的问题,还是我需要联系Heroku支持的东西?

python post heroku flask gunicorn

5
推荐指数
1
解决办法
1002
查看次数

标签 统计

flask ×1

gunicorn ×1

heroku ×1

post ×1

python ×1