tg-me.com/eshu_coding/193
Last Update:
Палантир, Часть 5. Питоновские клиенты-сборщики.
#палантир@eshu_coding
Сборщиков сейчас работает 4 штуки, написаны они на питоне, с использованием библиотеки telethon. Крутятся по два, каждый в своем докер контейнере на машинах с 0.5 Гб оперативки и 1 ядром 2.2 ГГц (слабее витуалки не нарезает хостер).
При работе сборщикам нужно куда-то сохранять данные о просмотренных ими телеграммных сущностях. Дефолтное решение - хранение в sqlite в файлах в рабочей директории - для докеризированного приложения не подходит.
Добрые люди создали удаленное хранилище сессий: ставишь пакет, указываешь тип бд и connection string к ней, а дальше все работает само.
В итоге при старте slave стучится к мастеру: есть сессия для коннекта? Если есть, master отдает ему данные для подключения к хранилищу сессий и номер телефона реги, slave цепляется к бд, берет данные, коннектится, работает.
Написаны сборщики за один день и написаны ужасно: там используется god-class и несколько вложенных друг в друга циклов while True:
Но к сожалению альтернатив питону для этой задачи нет (кроме php, бгг), необходимости переписывать пока тоже, так что работает - не трогаю.
P.S. У меня сегодня небольшой юбилей: в базе сейчас 91 тыс каналов и групп, из них выгружено 57 тыс, 1.7 млн юзеров и
150 млн сообщений.
BY Эшу быдлокодит
Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283
Share with your friend now:
tg-me.com/eshu_coding/193