python

超轻量级php框架startmvc

http请求 request失败自动重新尝试代码示例

更新时间:2020-05-19 17:48:01 作者:startmvc
本文研究的主要是http请求request失败自动重新尝试的一个例子,具体如下。需求最近开发一

本文研究的主要是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失败自动重新尝试代码示例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

python http request python http web request python httperror代码