本文研究的主要是http请求 request失败自动重新尝试的一个例子,具体如下。
需求
最近开发一个项目,要实现的一个场景是对于某个http请求,如果请求失败,需要再自动尝试几次,并记录异常原因便于排查
代码实现
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
#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失败自动重新尝试代码示例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!
原文链接:http://blog.csdn.net/sherry_rui/article/details/52621394