Что делать если бот выдаёт ошибку с чата в котором много людей TeleBot Python?
В чём проблема заключается я написал бота менеджера и захотел его добавить в чат людьми около 500 участника добавил пишу /start и он мне выдаёт в консоль: TeleBot: "A request to the Telegram API was unsuccessful. Error code: 429. Description: Too Many Requests: retry after 9" как мне его решить?
Mak_Sweet, по команде /start отправляется пара сообщений отправителю. Подозреваю, что проблемы создаёт команда /all. Оно и логично, если там 100500 пользователей в списке.
Чтобы отправить многим пользователям, надо ошибку 429 отлавливать и делать sleep. Либо хотя бы просто вставлять sleep, чтобы гарантированно не превысить скорость отправки. Но так как телебот является синхронным, sleep будет его стопорить.
До кучи, непонятно, зачем есть отдельные обработчики команд, но часть команд обрабатывает функция admin1 как текстовые строки.
Например, можно делать list пользователей на рассылку, брать из него элемент, посылать... Если случился Exception (лучше не какой попало, а понять, какой именно случается на те или иные ситуации) возвращать обратно в list и вставлять sleep например на 30 секунд; в следующей итерации на него будет новая отправка.
Тут главное отличать ошибки временные от ошибок фатальных. Например, если какой-то пользователь заблокирует бота, то такой подход может увести бота в бесконечный цикл.
В целом я советую идей рассылки пользователям в самом боте избегать. API ботов не для этого проектировалось.
shurshur, сейчас убрал рассылку и ввёл /start и выдало (__init__.py:688 MainThread) ERROR - TeleBot: "A request to the Telegram API was unsuccessful. Error code: 429. Description: Too Many Requests: retry after 9"
Mak_Sweet, где-то делаются запросы с этим токеном, то ли в этом боте, то ли в ещё где-то запущенном с таким же токеном.
По коду при поллинге none_stop=True приводит к тому, что бот делает повторные попытки, начиная с интервала 1/4 секунды и далее с увеличением в 2 раза последующие попытки. При этом ошибки будут логгироваться, но если событие в итоге обрабатывается, то это не страшно.