TGViewer
Бессонный кодер Бессонный кодер @sleeplesscode · 4.25K subscribers
Post #820 2.91K
Статьи — это, конечно, хорошо, но и своими достижениями тоже хочется похвастаться 😁

Как вы знаете (учитывая, сколько раз я об этом рассказывал), Имперский Стражник проверяет медиафайлы на наличие NSFW-контента. И чтобы всё это работало стабильно — нам пришлось хорошенько постараться.

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

Агентов много, сервер один — и вот тут начинается самое интересное. Оптимизация. Скорость. Боль (и удовольствие).


Сейчас у нас работает примерно такая схема:
1) После запуска сервер начинает кешировать задачи в in-memory кеш. Он пытается загрузить ~200 файлов в память, чтобы отдавать их с минимальной задержкой.
2) В процессе подгрузки каждую секунду создаётся задача, которая берёт данные из БД и предзагружает по 25 файлов, пока буфер не заполнится.
3) Когда клиент запрашивает задачу, мы сначала проверяем кеш.
— Есть в кеше → отдаём мгновенно + триггерим дозаполнение
— Нет → догружаем синхронно (и да, это уже больнее)

Вроде простой механизм…
Но на деле — это куча вылизанных таймингов, лимитов и балансов.

И что это дало?
Сначала мы вышли на 14 ops, потом на 18 ops.
И ~99% запросов — с минимальным ожиданием благодаря кешу.

А теперь давайте приземлимся: что такое 18 ops?

Это:
18 файлов в секунду
~40 HTTP-запросов к Telegram каждую секунду
~4 МБ/с трафика

И это не пик.
Это стабильная, непрерывная нагрузка.

Представьте: вы листаете чат, где каждую секунду появляется 18 стикеров…
И так часами.
Без единого «loading…».

Вот примерно так сейчас и работает система.
Прикольно получилось)

Кстати, можете сами посмотреть, как это всё живёт в реальном времени:
https://gf.redguy.ru/public-dashboards/e0e799d208844820bd772fdee8b136ca?orgId=1&refresh=5s

Сейчас поток не на максимуме, но всё равно хорошо видно, как основная нагрузка уходит через preload.

#tech
  • ❤ 25
  • 🔥 3
  • ❤‍🔥 2
More from @sleeplesscode
  1. Oct 2, 2026⚡️ JavaScript, архитектура и ИИ: о чем будут говорить на юбилейной HolyJS 2026 Autumn 📆 2…
  2. Oct 1, 2026Post #914
  3. Sep 18, 2026Post #913
  4. Sep 17, 2026Post #912
  5. Sep 15, 2026Post #911
  6. Sep 14, 2026Post #909
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →