我正在使用requests模块查询一个相对较大的PostgRES数据库(约14gb),该数据库可以通过PostgREST API访问,托管在对等服务器上。在
当我进行简单的API调用时,例如
requests.get('https://api.nycdb.info/real_property_legals?bbl=eq.4043210050')
我收到了200条回复,一切正常。然而,当我进行更多计算密集型搜索(例如文本搜索)时,大多数情况下我都会得到504个响应。在
这是一个几乎总是返回504超时的API调用的示例:
^{pr2}$我怀疑这是因为服务器的响应速度不够快,因为它的简单处理能力和数据库的大小。但是,我向社会寻求帮助。在
在提供504响应之前,有没有方法可以增加请求等待响应的时间?我还能做些什么来提高更复杂查询的可靠性?在
如果你阅读了请求的文档,你会看到的请求.get默认情况下不超时。在
另外,504是网关服务器产生的错误。在
所以,实际发生的是,你的postgres服务器与你的postgres服务器的通信超时了。在
你不能通过改变你的请求.get调用,则必须重新配置一个或两个服务器。在
(换句话说,这不是python或请求问题)
可以添加timeout=其中seconds是一个浮点值。(见pydoc请求。请求对于可直接提供给pydoc.get())在API服务器端也可能有一些限制,在这种情况下,您可能需要将查询分解成小块。在
相关问题 更多 >
编程相关推荐