如何检查请求是否在请求中花费太长时间?

时间:2015-01-10 13:29:28

标签: python flask python-requests

如果我使用requests向远程api发出阻止请求,则需要的时间太长,我的网站也会返回错误。我不希望这种情况发生。

这是我的阻止代码:

@app.route('/api')
def returnapi():
    r = requests.get("http://dndchecker.railsroot.com/api?mobile_number=9876543210")
    return r.text

如果请求对象,我想将r值设置为False。

1 个答案:

答案 0 :(得分:2)

所以你可以这样做:

@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定义为您想要等待的最大值。我会提醒你,你不应该把它设置得太低,否则你总会看到“服务器耗时太长。稍后再试。”适当的时间完全取决于您作为服务作者以及您觉得等待多长时间。