Telethon мастерская
Telethon мастерская
@telethon_workshops_ubt

Тысячи Telegram-сессий не живут в памяти: их надо проектировать как очередь

Тысячи Telegram-сессий не живут в памяти: их надо проектировать как очередь

Одна сессия — это файл. Тысячи сессий — уже сущность со статусом, прокси, последней активностью и счетчиком ошибок. Если держать это в коде, скрипт быстро превращается в свалку из списков и костылей. База нужна не для красоты, а чтобы управлять жизненным циклом: создать, пометить, заморозить, удалить.

Минимальная схема: id аккаунта, session_string или путь к файлу, proxy, phone, status, last_used, flood_until, fail_count. Этого хватает, чтобы воркер брал только «живые» сессии, а не дергал все подряд. Для параллельной работы добавь поле lock_owner или leased_at — иначе два процесса легко схватят один и тот же аккаунт.

Логи ошибок тоже хранятся в БД. RPCError, FloodWait, auth_key_unregistered, session_revoked — это не текст для консоли, а признаки состояния. По ним строится автоматическая деградация: при FloodWait сессия уходит в паузу, при ревоке — в пересоздание, при повторных таймаутах — в смену прокси. Дебаг — наш лучший друг в борьбе с FloodWait.

Практика: отдельная таблица для задач, отдельная — для сессий, отдельная — для событий. Так ты получаешь не «бота, который что-то делает», а управляемую систему. Оптимизируем сессии, избегаем лимитов.
Этот пост опубликован в Telegram-канале Telethon мастерская. Подписаться можно по ссылке: @telethon_workshops_ubt.
tech

Свежие посты в категории «Tech Infrastructure»

Все каналы категории →

start

Готовы запустить рекламу через сеть public.tg?

Новый оффер, продукт, GEO, кейс, событие или партнёрский запуск — соберём маршрут под задачу и отдадим медиаплан.

Telegram для медиаплана: @AFFtop_connect. Быстрый тест: $20 за канал, $1000 за пакет по сети.