Сбои Telegram: как ведут себя боты?

Время чтения: 4 минуты Прочту позже

Telegram — самый надёжный мессенджер, славный своей безопасностью и защищённостью. За это он так и любим миллионами пользователей по всему миру — лёгкий, быстрый, надёжный, секретный. Тем не менее, в новостях порой появляются сообщения о сбоях в Telegram, да и каждый из нас наверняка сталкивался с такой проблемой: сообщения не доставляются и не приходят, боты не отвечают, каналы не обновляются. Чаще всего проблемы возникают на территории нескольких стран, но пару раз общение в мессенджере было недоступно по всему миру. Стоит отдать должное инженерам и разработчикам Telegram, со временем это случается всё реже и реже, но полностью исключить вероятность возникновения проблем нельзя. От случайностей никто не застрахован, но всё же давайте разберёмся: что происходит, когда Telegram падает, и как ведут себя боты во время таких форс-мажоров?

Географические сбои

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

Внутренние сбои

Кроме региональных сбоев, случаются отказы и какой-то внутренней части Telegram, не привязанной к определённому региону. Так, «упасть» может API Telegram, то есть, непосредственно механизм взаимодействия с ботами. Тогда обычные пользователи по всему миру не испытывают затруднений при отправке сообщений, группы и каналы работают как положено, а вот боты не получают ответов от сервера Telegram и замирают. Обычный человек, отправивший в это время запрос в бота, не увидит причины, и будет просто сердиться на разработчиков, хотя, к сожалению, они никак не могут повлиять на такую ситуацию. Бот, не получивший ответа от API, будет вести себя по-разному в зависимости от настроек: если при разработке не проработать механизм реагирования на такую ситуацию, программа может “упасть” и восстанавливать работоспособность придётся вручную.

Таймаут и реакция на него

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

Боты и их реакция на проблемы

Так что же происходит во время сбоев? Если в случае с пользователями всё примерно понятно: сообщения не отправляются и не приходят, то с ботами всё немного сложнее. Некоторые после восстановления Telegram остаются безответными, в то время как другие самостоятельно оживают. В зависимости от настроенной схемы взаимодействия бот может ответить на все присланные во время сбоя запросы, а может оставить их без внимания и ответить только на последний, чтобы оповестить о восстановлении работоспособности. Конечно, пользователю важно знать, что сбой позади и всё восстановилось, но получать множество сообщений скопом неудобно и бесполезно.

Грамотно написанный бот должен включать в себя все сценарии возможных сбоев и уметь самостоятельно восстанавливаться после падений. Работа в условиях повышенного таймаута, своевременное включение в строй после бездействия без участия непосредственно человека, предотвращение зацикливания и вежливое отношение к пользователю — вот что отличает качественно написанного бота от поделки на коленке.

Конечно, и разработчики, и пользователи хотят, чтобы программы, с которыми они имеют дело, были отказоустойчивыми и как можно скорее приходили в себя после поломок. Для этого важно быть предусмотрительным при разработке ботов и заранее продумывать варианты поведения при различных сбоях, причём не только для взаимодействия с сервером, но и о том, как это будет выглядеть с пользовательской стороны. Мы в botcreators всегда заботимся о том, чтобы наши боты были не просто удобны и полезны, но ещё и надёжны, потому что мы уважаем и ценим время наших клиентов.

Понравился материал? Поделись!
0
Комментарии

Комментарии закрыты.