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

Тысячи сессий Telethon не держат в памяти: ими управляют через БД и очередь

Тысячи сессий Telethon не держат в памяти: ими управляют через БД и очередь

Когда аккаунтов сотни и больше, файл .session превращается в узкое место. Его неудобно бэкапить, сложно распределять между воркерами, а любой сбой в процессе легко ломает контроль над состоянием. Нормальная схема — хранить метаданные сессии в базе: phone, auth_key, dc_id, proxy, статус, лимиты, время последней активности.

Дальше важен не сам факт хранения, а дисциплина доступа:
• один аккаунт — один активный воркер
• любые изменения статуса только транзакцией
• перед стартом воркер берет lock, после работы снимает его
• FloodWait, RPCError и banned state пишутся отдельно, без “магии” в коде

Для Telethon это решается через собственный слой абстракции: сессия загружается из БД, поднимается клиент, выполняется задача, затем сохраняются новые auth-состояние и технические поля. Если нужен горизонтальный масштаб, добавляют очередь задач и таблицу lease, чтобы два процесса не трогали один и тот же аккаунт. Иначе ловите гонки, дублирование действий и грязные логи.

Оптимизируем сессии, избегаем лимитов. БД здесь не “склад файлов”, а источник истины: кто онлайн, кто в бане, кто в ожидании FloodWait, кто уже взял задачу. Дебаг — наш лучший друг в борьбе с FloodWait.
Этот пост опубликован в Telegram-канале Telethon мастерская. Подписаться можно по ссылке: @telethon_workshops_ubt.
tech

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

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

start

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

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

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