我有一台将POST发送到我的服务器的设备。在python中,我使用以下任一方法获取发布的数据:
request.data
request.get_data
request.get_json
但是我可以获得这些简单数据的时间各不相同。我用这样的东西进行测试:
start = time.time()
resp = request.data
return str(time.time() - start)
对于相同数量的数据,从某些末端节点看到的时间不到1毫秒,而有些则超过100毫秒。由于已经创建了请求对象,并且我假设已经接收到数据,那么造成速度变化的原因是什么?
答案 0 :(得分:0)
我认为数据已经收到
不要假设:)
Flask使用来自Werkzeug which calls get_data
的请求类。 get_data
已经缓存了数据,或者reads the stream。
文档字符串中甚至有一个警告:
通常,在不检查 客户端首先发送的内容长度为几十兆字节或更多 导致服务器上出现内存问题。
如果您希望避免因请求缓慢而阻塞服务器,则应在其前面放置一些反向代理(nginx?),这样可以更有效地处理输入,并在准备就绪时将完整请求移交给服务器