Аргумент функции обновления Python Tenacity Retry
У меня есть следующий код
from tenacity import retry, wait_exponential, after_log, stop_after_attempt, wait_chain, wait_fixed, retry_if_exception_type
import random
def my_before_sleep(retry_state):
print(
'Retrying %s: attempt %s ended with: %s',
retry_state.fn, retry_state.attempt_number, retry_state.outcome)
def proxy():
return random.randint(2, 10)
@retry(stop=stop_after_attempt(2), before_sleep=my_before_sleep, retry=retry_if_exception_type(KeyError))
def throwError(index, proxy):
if index == 50:
raise KeyError
def triggerPipeline(proxy):
for i in range(100):
throwError(i, proxy)
getProxy = proxy()
triggerPipeline(getProxy)
У меня есть основная функция triggerPipeline, которая в основном вызывает функцию, которая имеет настройку логики повтора, называемую
throwError
где, если индекс равен 50, он выдает ошибку KeyError, которая затем запускает логику повтора.
Я не понимаю, как я могу обновить аргумент, например, как я могу обновить аргумент
proxy
в функции throwError каждый раз, когда возникает ошибка KeyError, поэтому я говорю, что делаю запрос с новым прокси всякий раз, когда возникает ошибка ключа.