欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python包實現?retrying?重復回調操作

 更新時間:2022年04月19日 17:32:05   作者:autofelix?  
這篇文章主要介紹了python包實現?retrying?重復回調操作,文章python的相關資料展開對retrying?重復回調的詳細介紹,需要的小伙伴可以參考一下,希望對你的學習有所幫助

一、安裝

  • 循環(huán)、重復回調我們在很多場景中會用到
  • 不僅在支付場景中,我們需要通過反復的回調知道用戶的支付狀態(tài)
  • 還有在請求中,如果請求失敗,我們需要再重新進行進行請求,防止請求異常導致數據缺失
pip install retrying

二、一直請求

  • 假如我們希望在代碼碰到異常時,一直回調,直到成功
  • 下面方法中,我們直接訪問一個未定義的變量,肯定會走下面的Exception中
  • 這個時候我們可以將這一次錯誤寫進日志,但是讓程序繼續(xù)執(zhí)行這個方法,直到沒有異常為止
  • 因為這里模擬的是肯定有異常,所以該程序會一直返回回調,不間斷的循環(huán)往復
from retrying import retry

@retry()
def say():
try:
autofelix
except Exception as e:
# 可以將錯誤記錄日志
print(e)
raise

say()

三、設置最大運行次數

  • 如果我們在請求中遇到異常時候
  • 可以通過 stop_max_attempt_number 設置一個最大運行次數
  • 當回調次數超過設置值,將不再執(zhí)行回調
  • 這里我們設置最大運行次數為5次
from retrying import retry

@retry(stop_max_attempt_number=5)
def say():
try:
autofelix
except Exception as e:
# 可以將錯誤記錄日志
print(e)
raise

say()

四、設置重試的最大時間

  • 可以通過stop_max_delay 設置失敗重試的最大時間, 單位毫秒
  • 超出時間,則停止重試
from retrying import retry

@retry(stop_max_delay=1000)
def say():
try:
autofelix
except Exception as e:
# 可以將錯誤記錄日志
print(e)
raise

say()

五、設置間隔時間

  • 設置失敗重試的間隔時間, 單位毫秒
  • 降低回調頻率
from retrying import retry

@retry(wait_fixed=1000)
def say():
try:
autofelix
except Exception as e:
# 可以將錯誤記錄日志
print(e)
raise

say()

六、設置隨機間隔時間

  • 設置失敗重試隨機性間隔時間, 單位毫秒
  • 可以使得訪問頻率不均勻
from retrying import retry

@retry(wait_random_min=5000, wait_random_max=50000)
def say():
try:
autofelix
except Exception as e:
# 可以將錯誤記錄日志
print(e)
raise

say()

七、隨機倍數間隔時間

  • 可以通過設置wait_exponential_multiplier 間隔時間倍數增加
  • 可以通過設置wait_exponential_max 最大間隔時間
from retrying import retry

@retry(wait_exponential_multiplier=1000, wait_exponential_max=10000)
def say():
try:
autofelix
except Exception as e:
# 可以將錯誤記錄日志
print(e)
raise

say()

八、指定異常類型

  • 可以通過retry_on_exception 設置指定異常類型
  • 指定的異常類型會重試,不指定的類型,會直接異常退出
  • 如果設置 wrap_exception 參數為True,則其他類型異常
from retrying import retry

def retry_error(exception):
return isinstance(exception, RetryError)

# 會重復調用
@retry(etry_on_exception=retry_error)
def say():
try:
autofelix
except RetryError as e:
raise RetryError

# 只調用一次
@retry(etry_on_exception=retry_error, wrap_exception=True)
def say():
raise Exception('a')

say()

九、過濾回調

  • 可以設置retry_on_result 指定哪些結果需要去回調
  • 將請求結果放到 retry_on_result 指定方法中進行過濾,如果返回None,則繼續(xù)回調,否則就結束
from retrying import retry

def retry_filter(result):
print("this is result")
return result is not None

@retry(retry_on_result=retry_filter)
def say():
print('Retry forever ignoring Exceptions with no wait if return value is None')
return None

say()

十、異常執(zhí)行

  • 通過設置stop_func 每次拋出異常時都會執(zhí)行的函數
  • 如果和stop_max_delay、stop_max_attempt_number配合使用,則后兩者會失效
from retrying import retry

def stop_record(attempts, delay):
print("logging %d--->%d" % (attempts,delay))

@retry(stop_max_delay=10, stop_func=stop_record)
def say():
print("i am autofelix")
raise Exception

say()

到此這篇關于python 包之 retrying 重復回調的文章就介紹到這了,更多相關python retrying 內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 正確的理解和使用Django信號(Signals)

    正確的理解和使用Django信號(Signals)

    這篇文章主要介紹了如何正確的理解和使用Django信號(Signals),幫助大家更好的理解和學習是Django,感興趣的朋友可以了解下
    2021-04-04
  • Python模擬登錄的多種方法(四種)

    Python模擬登錄的多種方法(四種)

    這篇文章主要介紹了Python模擬登錄的多種方法,大概給大家提供了四種方法,每種方法給大家介紹的都很詳細,感興趣的朋友跟隨腳本之家小編一起看看吧
    2018-06-06
  • numpy數組疊加的實現示例

    numpy數組疊加的實現示例

    本文主要介紹了numpy數組疊加的實現示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • Python環(huán)境搭建之OpenCV的步驟方法

    Python環(huán)境搭建之OpenCV的步驟方法

    本篇文章主要介紹了Python環(huán)境搭建之OpenCV的步驟方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • Python3實現Web網頁圖片下載

    Python3實現Web網頁圖片下載

    這篇文章主要介紹了Python3通過request.urlopen實現Web網頁圖片下載,感興趣的小伙伴們可以參考一下
    2016-01-01
  • 簡單的Python人臉識別系統(tǒng)

    簡單的Python人臉識別系統(tǒng)

    這篇文章主要介紹了Python人臉識別系統(tǒng)的實現,文中講解非常詳細,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07
  • 用python實現各種數據結構

    用python實現各種數據結構

    這篇文章主要分享的是用python實現各種數據結構,快速排序、選擇排序、插入排序、歸并排序、堆排序heapq模塊等相關資料,感興趣的小伙伴可以參考一下
    2021-12-12
  • Python Django簡單實現session登錄注銷過程詳解

    Python Django簡單實現session登錄注銷過程詳解

    這篇文章主要介紹了Python Django簡單實現session登錄注銷過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • 利用Python暴力破解zip文件口令的方法詳解

    利用Python暴力破解zip文件口令的方法詳解

    這篇文章主要給大家介紹了關于利用Python暴力破解zip文件口令的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2017-12-12
  • 詳解Python3 中hasattr()、getattr()、setattr()、delattr()函數及示例代碼數

    詳解Python3 中hasattr()、getattr()、setattr()、delattr()函數及示例代碼數

    本文通過示例代碼給大家詳細介紹了Python3 中hasattr()、getattr()、setattr()、delattr()函數,非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2018-04-04

最新評論