使用 python 请求增加 504 超时前的时间
Increasing time before 504 time-out using python requests
我正在使用请求模块查询一个相对较大的 PostgRES 数据库(~14 GB),可通过 PostgREST API 访问,该数据库托管在由对等方设置的简单服务器上。
当我进行简单的 API 调用时,例如
requests.get('https://api.nycdb.info/real_property_legals?bbl=eq.4043210050')
我收到 200 响应,一切正常。但是,当我进行更多计算密集型搜索(例如文本搜索)时,绝大多数时间我都会收到 504 响应。
这是一个几乎总是 returns 504 超时的 API 调用示例:
requests.get('https://api.nycdb.info/real_property_parties?address1=@@."MADISON"')
我怀疑这是因为服务器响应速度不够快,这是由于其简单的处理能力和数据库的大小。但是,我在这里向社区寻求帮助。
有没有办法增加请求在提供 504 响应之前等待响应的时间?我还能做些什么来尝试提高更复杂查询的可靠性?
您可以添加 ,timeout=,其中秒数是浮点数。 (有关可直接提供给 pydoc.get() 的可用选项,请参阅 pydoc requests.request。)在 API 服务器端也可能存在限制,以防您可能需要破坏您的查询成一口大小的块。
如果您阅读请求文档,您会发现 requests.get 默认情况下不会超时。
此外,504 是网关服务器产生的错误。
所以,实际发生的是您的 PostGREST 服务器在与您的 postgres 服务器通信时超时。
您无法通过更改 request.get 调用来停止此操作,您必须重新配置一个或两个服务器。
(换句话说,这不是 python 或请求问题)
我正在使用请求模块查询一个相对较大的 PostgRES 数据库(~14 GB),可通过 PostgREST API 访问,该数据库托管在由对等方设置的简单服务器上。
当我进行简单的 API 调用时,例如
requests.get('https://api.nycdb.info/real_property_legals?bbl=eq.4043210050')
我收到 200 响应,一切正常。但是,当我进行更多计算密集型搜索(例如文本搜索)时,绝大多数时间我都会收到 504 响应。
这是一个几乎总是 returns 504 超时的 API 调用示例:
requests.get('https://api.nycdb.info/real_property_parties?address1=@@."MADISON"')
我怀疑这是因为服务器响应速度不够快,这是由于其简单的处理能力和数据库的大小。但是,我在这里向社区寻求帮助。
有没有办法增加请求在提供 504 响应之前等待响应的时间?我还能做些什么来尝试提高更复杂查询的可靠性?
您可以添加 ,timeout=,其中秒数是浮点数。 (有关可直接提供给 pydoc.get() 的可用选项,请参阅 pydoc requests.request。)在 API 服务器端也可能存在限制,以防您可能需要破坏您的查询成一口大小的块。
如果您阅读请求文档,您会发现 requests.get 默认情况下不会超时。
此外,504 是网关服务器产生的错误。
所以,实际发生的是您的 PostGREST 服务器在与您的 postgres 服务器通信时超时。
您无法通过更改 request.get 调用来停止此操作,您必须重新配置一个或两个服务器。
(换句话说,这不是 python 或请求问题)