如何检查请求是否在请求中花费了太长时间?
How to check if a request is taking too long in requests?
如果我使用 requests
向远程 api 发出阻止请求,它花费的时间太长,那么我的网站也会 return 出错。我不希望发生这种情况。
这是我的拦截代码:
@app.route('/api')
def returnapi():
r = requests.get("http://dndchecker.railsroot.com/api?mobile_number=9876543210")
return r.text
如果请求对象,我想将 r
值设置为 False。
所以你可以这样做:
@app.route('/api')
def returnapi():
try:
r = requests.get("http://dndchecker.railsroot.com/api?mobile_number=9876543210", timeout=my_timeout)
except (requests.exceptions.Timeout, requests.exceptions.ConnectionError) as err:
return 'Server taking too long. Try again later'
else:
return r.text
这应该可以帮助您防止服务器花费太长时间。您当然必须将 my_timeout
定义为您希望等待的最大值。我要提醒您,您不应该将它设置得太低,否则您将始终看到 "Server taking too long. Try again later." 正确的时间量完全取决于您作为服务作者以及您认为等待多长时间是合理的。
如果我使用 requests
向远程 api 发出阻止请求,它花费的时间太长,那么我的网站也会 return 出错。我不希望发生这种情况。
这是我的拦截代码:
@app.route('/api')
def returnapi():
r = requests.get("http://dndchecker.railsroot.com/api?mobile_number=9876543210")
return r.text
如果请求对象,我想将 r
值设置为 False。
所以你可以这样做:
@app.route('/api')
def returnapi():
try:
r = requests.get("http://dndchecker.railsroot.com/api?mobile_number=9876543210", timeout=my_timeout)
except (requests.exceptions.Timeout, requests.exceptions.ConnectionError) as err:
return 'Server taking too long. Try again later'
else:
return r.text
这应该可以帮助您防止服务器花费太长时间。您当然必须将 my_timeout
定义为您希望等待的最大值。我要提醒您,您不应该将它设置得太低,否则您将始终看到 "Server taking too long. Try again later." 正确的时间量完全取决于您作为服务作者以及您认为等待多长时间是合理的。