色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Python中retrying庫的有參數重試

麥辣雞腿堡 ? 來源:Python都知道 ? 作者:了不起 ? 2023-11-14 11:08 ? 次閱讀

參數重試

(1)stop_max_attempt_number

在retry中傳入stop_max_attempt_number參數后可以指定失敗重試的次數

@retry(stop_max_attempt_number=2)
def func():
    print(f"記錄失敗重試")
    for item in range(0,100):
        result=item / 0
        print(result)
        return result

func()

因為這里我們指定了失敗后進行兩次重試,如果重試執行兩次后還是報錯則結束重試,將錯誤信息拋出來。

圖片

**(2)wait_fixed**傳入wati_fixed后,可以指定重試的時間

from retrying import retry
import time

# 設置三秒重試一次
@retry(wait_fixed=3000)  
def func():
    print(f"記錄失敗重試:",time.strftime("%Y-%m-%d %H:%M:%S"))

    result=1 / 0
    print(result)
    return result

func()

圖片

配置重試間隔時間后,成語遇到執行失敗或者報錯后,就會根據設置的重試時間去進行重試執行

(3)wait_random_minwait_random_max

通常wait_random_min和wait_random_max是一起搭配使用的,可以設置一個重試等待的時間,然后會在設置的時間區間內隨機取一個等待時間進行重試

from retrying import retry
import time


@retry(wait_random_min=1000,wait_random_max=9000)
def func():
    print(f"記錄失敗重試:",time.strftime("%Y-%m-%d %H:%M:%S"))

    result=1 / 0
    print(result)
    return result

func()

圖片

(4)wait_exponential_multiplierwait_exponential_max

官方解釋為:以指數的形式產生兩次retrying之間的停留時間, 產生的值為2^previous_attempt_number * wait_exponential_multiplier, previous_attempt_number是前面已經retry的次數, 如果產生的這個值超過了wait_exponential_max的大小, 那么之后兩個retrying之間的停留值都為wait_exponential_max

通俗來點講就是每次重試的時間以wait_exponential_multiplier設置的值2,如果重試后還是失敗則繼續2,直到最后的值等于或則超過wait_exponential_max設置的值后,后面的每一次重試等待時間都是wait_exponential_max設置的值

from retrying import retry
import time

@retry(wait_exponential_multiplier=1000,wait_exponential_max=10000)
def func():
    print(f"記錄失敗重試:",time.strftime("%Y-%m-%d %H:%M:%S"))

    result=1 / 0
    print(result)
    return result

func()

圖片

(5)wait_func

在前面介紹的參數都是如何配置失敗沖重試的等待時間或者重試次數之類的,但是我們不能時時刻刻盯著程序,在程序代碼發生錯誤時我們應該要進行發送短信或者郵件之類的提醒才行

在這里就可以使用到wait_func參數,它接收一個可執行函數,返回一個具體的間隔時間數值,單位ms。接收的函數須接收兩個參數:attempt_number當前運行次數,delay_since_first_attempt_ms當前重試機制運行時間(單位ms)

from retrying import retry
import time


def func_demo(attempt_number,delay_since_first_attempt_ms):
    print("函數運行失敗后運行該函數")

    if attempt_number == 5:
        print("已經重試失敗五次了,開始準備發送提醒")

    if attempt_number == 10:
        print("已經重試失敗超10次了,發送郵件給相關人員緊急處理")

    if attempt_number  >10:
        print("重試時間過長,做一些其他臨時方案進行補救")

    # return一個重試的時間
    return 2000


@retry(wait_func=func_demo)
def func():
    print(f"記錄失敗重試:",time.strftime("%Y-%m-%d %H:%M:%S"))

    result=1 / 0

    return result

func()

圖片

使用wait_func通過調用其他可執行的函數,我們可以借助它來做一些臨時的補救措施,避免程序一直無法運行而產生的影響。

(6)其他參數

在retry中還存在有很多參數,有興趣的小伙伴可以去詳細了解下

圖片

  • stop_max_attempt_number:在停止之前嘗試的最大次數,最后一次如果還是有異常則會拋出異常,停止運行,默認為5次
  • stop_max_delay:最大延遲時間,大概意思就是:如果調用的函數出現異常,那么就會重復調用這個函數,最大調用時間,默認為100毫秒
  • wait_fixed:兩次調用方法期間停留時長, 如果出現異常則會一直重復調用,默認 1000毫秒
  • wait_random_min:在兩次調用方法停留時長,停留最短時間,默認為0
  • wait_random_max:在兩次調用方法停留時長,停留最長時間,默認為1000毫秒
  • wait_incrementing_increment:每調用一次則會增加的時長,默認 100毫秒
  • wait_exponential_multiplierwait_exponential_max:以指數的形式產生兩次「retrying」之間的停留時間,產生的值為2^previous_attempt_number * wait_exponential_multiplier,previous_attempt_number是前面已經「retry」的次數,如果產生的這個值超過了wait_exponential_max的大小,那么之后兩個「retrying」之間的停留值都為wait_exponential_max
  • retry_on_exception: 指定一個函數,如果此函數返回指定異常,則會重試,如果不是指定的異常則會退出
  • retry_on_result:指定一個函數,如果指定的函數返回True,則重試,否則拋出異常退出
  • wrap_exception:參數設置為True/False,如果指定的異常類型,包裹在RetryError中,會看到RetryError和程序拋的Exception error
  • stop_func: 每次拋出異常時都會執行的函數,如果和stop_max_delay、stop_max_attempt_number配合使用,則后兩者會失效 (指定的stop_func會有兩個參數:attempts, delay)
  • wait_func:和stop_func用法差不多。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據庫
    +關注

    關注

    7

    文章

    3794

    瀏覽量

    64362
  • 函數
    +關注

    關注

    3

    文章

    4327

    瀏覽量

    62574
  • python
    +關注

    關注

    56

    文章

    4792

    瀏覽量

    84631
收藏 人收藏

    評論

    相關推薦

    常用Python那些38個常用Python的詳細概述

    Python作為一個設計優秀的程序語言,現在已廣泛應用于各種領域,依靠其強大的第三方類Python在各個領域都能發揮巨大的作用。
    的頭像 發表于 11-03 10:28 ?3.1w次閱讀

    ADM1266 Python

    ADM1266 Python
    發表于 03-23 15:47 ?1次下載
    ADM1266 <b class='flag-5'>Python</b><b class='flag-5'>庫</b>

    詳解Python的Pandas和Numpy

    pandas、numpy是Python數據科學中非常常用的,numpy是Python的數值計算擴展,專門用來處理矩陣,它的運算效率比列表更高效。
    的頭像 發表于 05-25 12:49 ?2574次閱讀

    如何在RocketMQ合理使用重試機制

    RocketMQ 的重試機制包括三部分,分別是生產者重試,服務端內部數據復制遇到非預期問題時重試,消費者消費重試
    的頭像 發表于 11-23 10:15 ?1119次閱讀

    如何安裝常用Python

    Python作為一種流行的編程語言,擁有豐富的第三方資源,這些可以幫助開發者輕松實現各種功能,從數據分析到Web開發,從機器學習到圖像處理,涵蓋了各個領域。在Python的開發過程
    的頭像 發表于 04-14 12:11 ?1156次閱讀

    SQLite數據python的區別

    、數據科學等方面。SQLite數據Python之間很多不同之處,下面將詳細解析它們之間的區別。 1. 數據類型 SQLite是一種關系型數據
    的頭像 發表于 08-28 16:41 ?859次閱讀

    python什么用 如何用python創建數據

    python什么用 如何用python創建數據 Python是一種高級編程語言,可以用于開發各種類型的應用程序和工具。它的廣泛應用使它在
    的頭像 發表于 08-28 16:41 ?1173次閱讀

    python讀取數據數據 python查詢數據 python數據連接

    ,獲取數據的數據,并對數據進行增刪改查等操作。本文將詳細介紹Python如何連接數據、讀取數據數據以及如何進行查詢操作。 一、
    的頭像 發表于 08-28 17:09 ?1815次閱讀

    Pythonoloredlogs的使用

    coloredlogs介紹 coloredlogs是一個Python,它允許開發人員在控制臺打印彩色日志。這個的主要優點是它可以很容易地改變日志消息的顏色,從而使日志更易于閱讀和理解。這對
    的頭像 發表于 10-07 11:28 ?829次閱讀
    <b class='flag-5'>Python</b><b class='flag-5'>庫</b><b class='flag-5'>中</b>oloredlogs的使用

    Python 在什么情況下才進行重試

    如何寫得優雅、易用,是我們要考慮的問題。 這里要給大家介紹的是一個第三方 - Tenacity (標題中的重試機制并并不準確,它不是 Python 的內置模塊,因此并不能稱之為機制),它實現了幾乎我們可以使用到的所有
    的頭像 發表于 10-21 11:18 ?352次閱讀

    Tenacity重試模塊實踐

    如何寫得優雅、易用,是我們要考慮的問題。 這里要給大家介紹的是一個第三方 - Tenacity ,它實現了幾乎我們可以使用到的所有重試場景,比如: 在什么情況下才進行重試重試幾次
    的頭像 發表于 11-02 11:33 ?403次閱讀

    Python關于retrying的使用

    到使用try except來進行異常捕捉進行失敗重試(Retry)。雖然try-escept一個非常常見和有效的方式來增強程序穩定性,但是可能一不小心就會造成棧溢出。 所以接下來我就來介紹一個另外的一個專門用于失敗重試
    的頭像 發表于 11-14 11:01 ?498次閱讀

    python如何引入math

    Python,要使用math,首先需要先引入它。mathPython的一個標準,它提
    的頭像 發表于 11-22 11:03 ?4257次閱讀

    python第三方哪些

    Python 作為一門功能強大的編程語言,擁有豐富的第三方,幾乎覆蓋了各個領域的應用。下面是一些常見且廣泛應用的 Python 第三方的總結,希望能為您提供幫助。 NumPy(Nu
    的頭像 發表于 11-29 14:31 ?2127次閱讀

    小三軸荷重試驗機是什么?哪些介紹

    小三軸荷重試驗機是什么?哪些介紹
    的頭像 發表于 12-07 09:09 ?454次閱讀
    小三軸荷<b class='flag-5'>重試</b>驗機是什么?<b class='flag-5'>有</b>哪些介紹
    主站蜘蛛池模板: 国产精品亚洲二线在线播放| 国产精品.XX视频.XXTV| 菲律宾毛片| 精品国产影院| 祺鑫WRITEAS流出来了| 亚洲国产高清福利视频| 99久久免费热在线精品| 国产精品永久免费视频| 年轻的女教师2017韩国在线看| 香蕉动漫库| yellow日本高清在线| 好色女博士| 色橹| 2012中文字幕在线动漫电影| 国产精品久久自在自2021| 女女破视频在线观看| 亚洲欧美一区二区久久| 俄罗斯摘花| 嫩草影院在线观看精品视频| 野花韩国在线观看| 国产精人妻无码一区麻豆 | 在线免费观看国产| 把极品白丝班长啪到腿软| 久久香蕉国产线看观看| 亚洲国产cao| 国产精品无码亚洲精品| 日本xxxx19| adc免费观看| 免费国产精品视频| 中文字幕爆乳JULIA女教师| 精品国产成人系列| 亚洲 欧美 国产 伦 综合| 夫妻性姿势真人做视频| 全黄h全肉短篇禁乱np| 999久久久无码国产精蜜柚| 麻豆免费观看高清完整视频| 伊人网站在线| 免费视频久久只有精品| 11 13加污女qq看他下面| 啦啦啦WWW在线观看免费高清版| 亞洲人妻AV無碼在線視頻|