Задать вопрос
@Akkordeon_youTube

Какие способы обеспечить стабильность работы тг бота сейчас без использования впн?

Здравствуйте, запускаю бота на широкую аудиторию. Использую telethon т.к. есть возможность подключаться с прокси. Прокси тоже не всегда срабатывают. Бот в какие то моменты просто не отвечает, а потом резко начинает отвечать. (Реализована система смены прокси если один перестаёт работать). Возможно вы подскажете какие есть варианты, что то изменить чтобы бот работал постабильнее, желательно без впн
  • Вопрос задан
  • 546 просмотров
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    SMM-продвижение в Телеграме
    1 месяц
    Далее
  • Skillbox
    Профессия Интернет-маркетолог + ИИ
    12 месяцев
    Далее
  • GB (GeekBrains)
    Интернет-маркетолог
    12 месяцев
    Далее
Решения вопроса 1
opium
@opium
Просто люблю качественно работать
А зачем telethon? Bot API через api.telegram.org (aiogram или python-telegram-bot) — это HTTPS, а не MTProto напрямую, обычно стабильнее прокси. Telethon цепляется к серверам Telegram по MTProto, там и нестабильность. Если токен бота есть, а не юзербот — переписать несложно.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@Drno
никаких. вообще правильный вариант разместить бота на заграничных серверах. и гемора не будет
либо в ВПН пускать всю виртуалку \ ТГ ipшники итд. но это по сути та же проблема что и с прокси, хоть и менее выраженная
Ответ написан
Комментировать
Slotly
@Slotly
Python, Telegram-боты записи, бэкенд для сайтов
Про переход на Bot API выше верно. Добавлю про симптом, который вы
описали, — «залипает, а потом отвечает пачкой».

Это почти наверняка не сеть, а отсутствие таймаутов. Один запрос повис,
за ним встала очередь, соединение отвалилось по системному таймауту —
и всё накопленное вылетело разом. Пока таймауты не выставлены явно,
любая работа через прокси будет давать ровно эту картину, на каком бы
сервере вы ни хостились.

Что помогает, кроме самого переезда на Bot API:

— явные таймауты на каждый сетевой вызов, короткие
— ретраи с экспоненциальной паузой и случайным разбросом
— таблица исходящих: бот не шлёт напрямую, а кладёт сообщение в базу,
отдельный воркер отправляет и проставляет статус. При обрыве ничего
не теряется, уходит позже
— ключ идемпотентности на отправку, иначе после восстановления связи
прилетят дубли
— отвечать пользователю сразу, даже если работа не сделана: «принял,
обрабатываю». Человек прощает медленно, но не прощает тишину

Если прокси всё-таки нужны — не ротация вслепую, а пул с проверкой:
перед выдачей дёргать через прокси getMe с таймаутом в пару секунд,
не ответил — помечать мёртвым на несколько минут. Прокси, который падает
через раз, хуже отсутствующего: он съедает ретраи.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы