Лучший способ повторить попытку

У меня есть этот код:

      async def check(domain):
    attempts = 0
    url = 'https://www.{}/'.format(domain)
    check_for = ['abc123', 'xyz345']
    while attempts <= MAX_TRIES:
        try:
            async with request("GET", url, timeout=TIMEOUT) as response:
                data = await response.text("utf-8")
                if any(key in check_for in data):
                    async with aiofiles.open(OUTFILE, mode='a+') as f:
                        await f.write('{}{}'.format(domain, '\n'))
                return True
        except:
            attempts += 1
            continue
    return None # fallback

Я часто оборачиваю свой код в «пока попытки <= MAX_TRIES».

Есть ли какой-нибудь декоратор, который позволяет мне просто повторить этот запрос и вернуть None в конце всех попыток?

Я знаю, что Tenacity и aiohttp-retry существуют, но не могу найти примеры документации, описывающие эту конкретную функциональность.

0 ответов

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