Python失敗重試機制

2021-10-03 17:28:13 字數 1302 閱讀 3629

import unittest

from time import sleep

from retrying import retry

from selenium import webdriver

class testretry(unittest.testcase):

def setup(self) -> none:

self.driver = webdriver.chrome()

self.url = ''

@retry(stop_max_attempt_number=5, wait_fixed=4000)

def test1(self):

d = self.driver

d.get(self.url)

d.find_element_by_id('kw').send_keys('hello world')

sleep(1)

d.find_element_by_id('sus').click()

sleep(1)

def teardown(self) -> none:

self.driver.quit()

if __name__ == "__main__":

unittest.main()

1.stop_max_attempt_number:  用來設定最大的嘗試次數,超過該次數就停止重試

2.stop_max_delay: 比如設定成10000,那麼從被裝飾的函式開始執行的時間點開始,到函式成功執行結束或者失敗報錯中止的時間點, 只要這段時間超過10秒,函式就不會再執行了

3.wait_fixed: 設定在兩次retrying之間的停留時間

4.wait_random_min和wait_random_max: 用隨機的方式產生兩次retrying之間的停留時間

5.wait_exponential_multiplier和wait_exponential_max: 以指數的形式產生兩次retrying之間的停留時間,產生的值為2^previous_attempt_number * wait_exponential_multiplier,previous_attempt_number是前面已經retry的次數, 如果產生的這個值超過了wait_exponential_max的大小,那麼之後兩個retrying之間的停留值都為wait_exponential_max

6.我們可以指定要在出現哪些異常的時候再去retry,這個要用retry_on_exception傳入乙個函式物件

Nginx 失敗重試機制 詳細

nginx 的失敗重試,就是為了實現對客戶端透明的伺服器高可用。然而這部分失敗重試機制比較複雜且官方文件沒詳細介紹,本文將對其解析,並配合實際場景例子使之更容易被理解。這部分介紹最常見 最基礎的失敗重試場景。為了方便理解,使用了以下配置進行分析 proxy next upstream沒有特殊配置 u...

中斷重試機制

原文 中斷重試 中斷重試機制 public abstract class retrytemplate public retrytemplate setsleeptime int sleeptime this sleeptime sleeptime return this public intgetr...

Spring重試機制

org.springframework.retrygroupid spring retryartifactid dependency org.springframework.bootgroupid spring boot starter aopartifactid dependency 程式啟動類新...