🔁 retry

Вызывает асинхронную функцию и повторяет её, когда Telegram отдаёт временную ошибку: флуд-контроль (RetryAfter) или сетевую/серверную ошибку (TelegramNetworkError, TelegramServerError).

Передавайте саму функцию (или связанный метод) и её аргументы, а не уже созданную корутину. retry заново вызывает функцию на каждой попытке, а ваша IDE проверяет имена и типы аргументов так же, как при прямом вызове:

from raito import rt

await rt.retry(bot.send_message, chat_id, "...")
await rt.retry(message.answer, "...")

Устарело, начиная с версии 1.6.0: Не вызывайте функцию сами. rt.retry(bot.send_message(...)) пока работает, но выдаёт DeprecationWarning (и тайпчекер это отметит): полученную корутину можно ждать лишь раз, повторить её нельзя. Поддержку уберут в 1.8.0.

Повторы идут по фиксированной политике: до 5 попыток, с учётом серверного retry_after для флуд-контроля и с экспоненциальной задержкой для сетевых/серверных ошибок.