国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python自動重試HTTP連接裝飾器

2020-02-23 00:54:53
字體:
供稿:網(wǎng)友

有時候我們要去別的接口取數(shù)據(jù),可能因為網(wǎng)絡(luò)原因偶爾失敗,為了能自動重試,寫了這么一個裝飾器。
這個是python2.7x 的版本,python3.x可以用 nonlocal 來重寫。

#-*- coding: utf-8 -*-  #all decorators in this tool file #author: orangleliu  ############################################################ #http連接有問題時候,自動重連 def conn_try_again(function):   RETRIES = 0   #重試的次數(shù)   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 post_query_bandwidth_for_bandwidth(self, contract_no, data_month, product_code):   #根據(jù)webluker接口情況獲取計費(fèi)數(shù)據(jù)     try:     post_data = {'contract':contract_no, 'month': data_month, 'code':product_code}     params = urllib.urlencode(post_data)     response = urllib2.urlopen(WEBLUKER_BANDWITH_API + "?" +params)     billdata = {}     billdata = response.read()     if not billdata:       billdata = {}     return billdata   except Exception, err:     err = u'與webluker接口間通信異常'     raise Exception(err) 

如果try塊中有異常,就會自動重試2次。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 深泽县| 五常市| 阿拉善盟| 江城| 长乐市| 大同县| 施秉县| 井陉县| 平遥县| 镇雄县| 连州市| 虞城县| 阿图什市| 稷山县| 庄浪县| 石城县| 静安区| 宜君县| 同仁县| 伽师县| 海兴县| 浦江县| 台北县| 类乌齐县| 徐水县| 墨脱县| 南康市| 恩平市| 云霄县| 兴安盟| 荃湾区| 潜江市| 乌拉特中旗| 玉山县| 葵青区| 梁平县| 元氏县| 南木林县| 通辽市| 图片| 固原市|