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