从烧瓶请求获取数据很慢

时间:2018-09-13 23:12:35

标签: python flask request

我有一台将POST发送到我的服务器的设备。在python中,我使用以下任一方法获取发布的数据:

request.data
request.get_data
request.get_json

但是我可以获得这些简单数据的时间各不相同。我用这样的东西进行测试:

start = time.time()
resp = request.data
return str(time.time() - start)

对于相同数量的数据,从某些末端节点看到的时间不到1毫秒,而有些则超过100毫秒。由于已经创建了请求对象,并且我假设已经接收到数据,那么造成速度变化的原因是什么?

1 个答案:

答案 0 :(得分:0)

  

我认为数据已经收到

不要假设:)

Flask使用来自Werkzeug which calls get_data的请求类。 get_data已经缓存了数据,或者reads the stream

文档字符串中甚至有一个警告:

  

通常,在不检查           客户端首先发送的内容长度为几十兆字节或更多           导致服务器上出现内存问题。

如果您希望避免因请求缓慢而阻塞服务器,则应在其前面放置一些反向代理(nginx?),这样可以更有效地处理输入,并在准备就绪时将完整请求移交给服务器