我需要在一定时间内等待服务器的成功响应。最简单的方法是:
def wait_for_response():
response = None
time = 60
while time > 0:
response = requests.get(url=some_url)
if response:
break
time.sleep(5)
time -= 5
if not response:
print("SOME ERROR")
return response.json()
但我不认为这个解决方案是好的。有没有其他更好的解决办法?请注意,只有在函数完成工作后,程序才应继续工作
2条答案
按热度按时间t3psigkw1#
requests.get()
是等待请求的函数…最好的办法是给函数添加一个timeout={seconds}
参数,比如:它将等待60秒的请求完成,然后抛出一个错误。
mv1qrgav2#
您可以使用此软件包https://pypi.org/project/backoff/
on_exception装饰器用于在引发指定的异常时重试。下面是一个在任何请求异常被引发时使用指数回退的示例: