本文研究的主要是http请求 request失败自动重新尝试的一个例子,具体如下。
需求
最近开发一个项目,要实现的一个场景是对于某个http请求,如果请求失败,需要再自动尝试几次,并记录异常原因便于排查
代码实现
#http连接有问题时候,自动重连 def conn_try_again(function): RETRIES = 0 #重试的次数 count = {"num": RETRIES} def wrapped(*args, **kwargs): try: return function(*args, **kwargs) except Exception, err: if count['num'] < 2: count['num'] += 1 return wrapped(*args, **kwargs) else: raise Exception(err) return wrapped @conn_try_again def http_request(session, method, url, data, header = header): try: if method == 'GET': r = session.get(url, data = data, headers = header) return r elif method == 'POST': r = session.post(url, data = data, headers = header) return r else: return None except Exception as e: logging.exception('[online_statistics] http request connection error %s'% e)
总结
以上就是本文关于http请求 request失败自动重新尝试代码示例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!