Повтор запитів до API (auto-retry
)
Цей плагін є функцієюretry
, тобто був обмеженний. Він перехоплює помилку, чекає вказаний проміжок часу, а потім повторює запит.
Контролювання перевищення кількості запитів до API
Telegram повідомить вас, якщо ви надсилаєте повідомлення занадто швидко. Це важливий захід для боротьби з перевищенням кількості запитів до API, оскільки він гарантує, що ваш бот не створює надмірного навантаження на Telegram. Використання цього плагіна важливе, тому що Telegram може забанити вашого бота, якщо ви забудете враховувати помилку з кодом статусу 429.
Ви можете встановити цей плагін на обʼєкт bot
наступним чином:
import { autoRetry } from "@grammyjs/auto-retry";
// Використовуємо плагін.
bot.api.config.use(autoRetry());
2
3
4
const { autoRetry } = require("@grammyjs/auto-retry");
// Використовуємо плагін.
bot.api.config.use(autoRetry());
2
3
4
import { autoRetry } from "https://esm.sh/@grammyjs/auto-retry";
// Використовуємо плагін.
bot.api.config.use(autoRetry());
2
3
4
Якщо ви зараз викличете, наприклад, send
й зіткнетеся з обмеженням, це виглядатиме ніби запит просто надзвичайно довго виконується. Насправді виконується декілька запитів HTTP з відповідними затримками між ними.
Ви можете передати обʼєкт параметрів, який визначає максимальну кількість спроб (max
, початково 3) або межу максимального часу очікування (max
, початково 1 година).
Як тільки максимальна кількість спроб буде вичерпана, наступні спроби надіслати цей запит більше не робитимуться. Замість цього буде передано обʼєкт помилки від Telegram, що фактично означає невдалість запиту з супутньою помилкою Grammy
.
Аналогічно, якщо запит коли-небудь зазнає невдачі з retry
більшим, ніж вказано в параметрі max
, запит відразу буде визначено як невдалий.
autoRetry({
maxRetryAttempts: 1, // повторювати запити лише один раз
maxDelaySeconds: 5, // запит визначається невдалим негайно, якщо доводиться чекати більше 5-ти секунд
});
2
3
4
Ви можете використовувати retry
, щоб включити всі інші внутрішні помилки сервера Telegram (код стану >= 500) у наведену вище процедуру. Ці помилки будуть негайно повторені, але вони також враховують параметр max
.
Загальні відомості про плагін
- Назва:
auto
-retry - Джерело: https://
github .com /grammyjs /auto -retry - Довідка: https://
doc .deno .land /https:// raw .githubusercontent .com /grammyjs /auto -retry /main /src /index .ts