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