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

Потеря связи в боте telebot, в чем могут быть проблемы?

Пишу крипто-бота на telebot (на данный момент версия telebot 4.18.1) вроде бы при тестах все хорошо, но когда перевел бота на домашний сервер(старый ноут, но для таких задач идет спокойно) появляются проблемы (P.S думаю проблема не в сервере, т.к. с другими задачами в python спокойно справляется).

Сама суть проблемы:
Сначало, при запуске бота все идет идеально, время отправки сообщения 0.9-0.1с но после того как проходит минут 40-80 начинаются проблемы, первое сообщение после большого перерыва (как написал раньше, 40-80 минут) не может отправится, возникает ошибка requests.exceptions.connectionerror: ('connection aborted.', remotedisconnected('remote end closed connection without response')), а после этого неотправленного сообщение все работает идеально, но лишь опять до перерыва в 40-80 минут. Подскажите пожалуйста есть ли идейки, я конечно до этого почитал на англоязычных форумах о этой проблеме, но решения конкретного не увидел

P.S. ноут старый, но другие библиотеки связанные с телеграмом работают идеально, интернет более-менее стабильный, стоит win 10, но она работает 24/7. Запуск самого бота проходит в отдельном потоке (не знаю может ли это информация пригодится, но думаю лишней точно не будет), а сам запуск бота происходит командой bot.infinity_polling(none_stop=True).
  • Вопрос задан
  • 117 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
@Everything_is_bad
но когда перевел бота на домашний сервер
это одна из возможных причин, качество обычной техники и домашнего интернета очень плохое.

remote end closed connection without response
а это вторая, причиной этого может быть превышение лимита запросов на сторонний сервис, а может просто проблемы с сетью, как следствие первой причины

Надо делать правильно, нормальный хостинг и webhook.
Ответ написан
Комментировать
@TheDigitalMadness
Программист
Такая же проблема. Решение простое:
while True:
    try:
        print('Bot started')
        bot = Bot()
    except Exception as e:
        print('Bot crashed')
        print(e)

также, можно сделать задержку в except, чтобы бот "успел прийти в себя"

Изменено: у меня ошибка прошла когда я не стал переключать ноутбук, на котором поставлен бот, в спящий режим. В общем, просто нельзя переводить компьютер в спящий режим
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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