小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

tenacity,建議直接封神!

 Python集中營 2025-10-10 發(fā)布于甘肅

在日常的代碼開發(fā)過程中,重試邏輯往往扮演著比較重要的角色。

特別是在業(yè)務(wù)超時、請求阻塞等業(yè)務(wù)場景需要對某一塊邏輯加上重試機(jī)制以保持業(yè)務(wù)的連貫性。

在我們的Python編碼中就有這樣一個非常便捷的工具庫;它可以幫助我們很簡單的就能實現(xiàn)一個代碼塊中重試機(jī)制。

你可以選擇pip或者conda命令安裝這個工具庫,它就是 Tenacity 模塊。

pip install tenacity

下面我們通過一個簡單的代碼塊來演示一下它的用法。

在安裝完成之后可以直接使用注解的方式,將 @retry注解直接添加在某個函數(shù)的前面;

可以在注解中通過參數(shù)設(shè)置的方式直接設(shè)置業(yè)務(wù)邏輯重試的次數(shù)、重試間隔時間等相關(guān)信息,自動幫助我們完成重試機(jī)制;

from tenacity import retry, stop_after_attempt, wait_exponential, retry_if_exception_type
import requests  # 用網(wǎng)絡(luò)請求模擬易失敗操作

# 1. 給函數(shù)加裝飾器,定義重試規(guī)則
@retry(
    stop=stop_after_attempt(3),  # 最多重試3次
    wait=wait_exponential(multiplier=1, min=1, max=5),  # 重試間隔:1s → 2s → 4s(最多5s)
    retry=retry_if_exception_type(requests.exceptions.RequestException)  # 只有請求異常時才重試
)

deffetch_url(url):
    response = requests.get(url, timeout=3)
    response.raise_for_status()# 觸發(fā)4xx/5xx錯誤的異常
return response.text

# 2. 調(diào)用函數(shù)(失敗會自動重試)
try:
    result = fetch_url("https:///nonexistent")# 故意訪問不存在的地址
print("請求成功:", result[:50])
exceptExceptionas e:
print(f"3次重試后仍失敗:{e}")

最后在調(diào)用這個添加了重試機(jī)制的函數(shù)時就會觸發(fā)重試機(jī)制,這種方式避免我們對每一個函數(shù)去開發(fā)復(fù)雜的重試機(jī)制。

tenacity 模塊更多的說明及用途,歡迎大家在留言討論!

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多