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