老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)

Python中出現(xiàn)異常重試如何解決

這篇文章給大家介紹Python中出現(xiàn)異常重試如何解決,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

成都創(chuàng)新互聯(lián)公司2013年至今,先為柘榮等服務(wù)建站,柘榮等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢(xún)服務(wù)。為柘榮企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。

原先的流程:

def crawl_page(url):       pass       def log_error(url):       pass       url = ""   try:      crawl_page(url)   except:       log_error(url)

改進(jìn)后的流程:

attempts = 0   success = False   while attempts < 3 and not success:       try:           crawl_page(url)           success = True       except:           attempts = 1           if attempts == 3:               break

最近發(fā)現(xiàn)的新的解決方案:retrying

retrying 是一個(gè) Python 的重試包,可以用來(lái)自動(dòng)重試一些可能運(yùn)行失敗的程序段。retrying 提供一個(gè)裝飾器函數(shù)  retry,被裝飾的函數(shù)就會(huì)在運(yùn)行失敗的條件下重新執(zhí)行,默認(rèn)只要一直報(bào)錯(cuò)就會(huì)不斷重試。

import random   from retrying import retry       @retry   def do_something_unreliable():       if random.randint(0, 10) > 1:           raise IOError("Broken sauce, everything is hosed!!!111one")       else:           return "Awesome sauce!"       print do_something_unreliable()

如果我們運(yùn)行 haveatry 函數(shù),那么直到 random.randint 返回 5,它才會(huì)執(zhí)行結(jié)束,否則會(huì)一直重新執(zhí)行。

retry 還可以接受一些參數(shù),這個(gè)從源碼中 Retrying 類(lèi)的初始化函數(shù)可以看到可選的參數(shù):

  • stopmaxattempt_number:用來(lái)設(shè)定***的嘗試次數(shù),超過(guò)該次數(shù)就停止重試

  • stopmaxdelay:比如設(shè)置成 10000,那么從被裝飾的函數(shù)開(kāi)始執(zhí)行的時(shí)間點(diǎn)開(kāi)始,到函數(shù)成功運(yùn)行結(jié)束或者失敗報(bào)錯(cuò)中止的時(shí)間點(diǎn),只要這段時(shí)間超過(guò)  10 秒,函數(shù)就不會(huì)再執(zhí)行了

  • wait_fixed:設(shè)置在兩次 retrying 之間的停留時(shí)間

  • waitrandommin 和 waitrandommax:用隨機(jī)的方式產(chǎn)生兩次 retrying 之間的停留時(shí)間

  • waitexponentialmultiplier 和 waitexponentialmax:以指數(shù)的形式產(chǎn)生兩次 retrying  之間的停留時(shí)間,產(chǎn)生的值為 2^previousattemptnumber *  waitexponentialmultiplier,previousattemptnumber 是前面已經(jīng) retry 的次數(shù),如果產(chǎn)生的這個(gè)值超過(guò)了  waitexponentialmax 的大小,那么之后兩個(gè) retrying 之間的停留值都為 waitexponentialmax。這個(gè)設(shè)計(jì)迎合了  exponential backoff 算法,可以減輕阻塞的情況。

我們可以指定要在出現(xiàn)哪些異常的時(shí)候再去 retry,這個(gè)要用 retryonexception 傳入一個(gè)函數(shù)對(duì)象:

def retry_if_io_error(exception):       return isinstance(exception, IOError)       @retry(retry_on_exception=retry_if_io_error)   def read_a_file():       with open("file", "r") as f:           return f.read()

在執(zhí)行 readafile 函數(shù)的過(guò)程中,如果報(bào)出異常,那么這個(gè)異常會(huì)以形參 exception 傳入 retryifio_error 函數(shù)中,如果  exception 是 IOError 那么就進(jìn)行 retry,如果不是就停止運(yùn)行并拋出異常。

我們還可以指定要在得到哪些結(jié)果的時(shí)候去 retry,這個(gè)要用 retryonresult 傳入一個(gè)函數(shù)對(duì)象:

def retry_if_result_none(result):       return result is None       @retry(retry_on_result=retry_if_result_none)   def get_result():       return None

在執(zhí)行 getresult 成功后,會(huì)將函數(shù)的返回值通過(guò)形參 result 的形式傳入 retryifresultnone 函數(shù)中,如果返回值是 None  那么就進(jìn)行 retry,否則就結(jié)束并返回函數(shù)值。

關(guān)于Python中出現(xiàn)異常重試如何解決就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。


當(dāng)前標(biāo)題:Python中出現(xiàn)異常重試如何解決
路徑分享:http://www.xueling.net.cn/article/gdheeo.html

其他資訊

在線咨詢(xún)
服務(wù)熱線
服務(wù)熱線:028-86922220
TOP
主站蜘蛛池模板: 欧美曰逼视频 | 韩日在线观看视频 | 亚洲精品沙发午睡系列 | 完全着衣の爆乳お姉さんが | 一色屋精品视频在线观看免费 | 国产极品粉嫩泬免费观看 | 91人人草| 岛国黄色大片 | 久久久久亚洲av成人动图 | 给我播放片在线 | 九七视频在线观看 | 九九爱爱视频 | 亚洲精品成人AV在线观看爽翻 | 久久亚洲av成人无码国产最大 | 清纯国语对白videoshdcom 99久久免费国产精精品 | 国产高清在线精品 | 久久只精品国产 | 黄色小说视频网站 | 黄频网站在线观看 | 天美传媒国色天香乱码 | 欧美setu | 丝袜办公室秘书啪啪到哭 | 中文字幕日韩专区 | 91精选在线观看 | 亚洲欧美一区二区精品中文字幕 | 欧美人与动ZOZO在线播放 | av免费看大片 | 成人激情在线观看 | 中国毛片大全 | 少妇爆乳无码专区网站 | 视频在线观看入口黄最新永久免费国产 | 久久香草 | 日日躁夜夜躁狠狠躁aⅴ蜜 国产精品人成A片一区二区 | 国产精品一区二区国产主播 | 久久国产精品99久久久久久老狼 | 精品国产免费一区二区三区香蕉 | 成年免费无码动漫AV片在线观看 | 女18一级大黄毛片免费女人 | 韩日精品中文字幕 | 欧美男同GV免费网站观看 | 超碰精品在线观看 |