Аргумент функции обновления 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, поэтому я говорю, что делаю запрос с новым прокси всякий раз, когда возникает ошибка ключа.

0 ответов

Другие вопросы по тегам