- Опубликовано
Хотел бы поделиться с вами еще одним из моих...
- Автор

- Имя
- Айнур пишет ... 📝
- Telegram
Айнур пишет ... 📝263 подписчика28 постовЖиву в Екатеринбурге, занимаюсь бэкенд разработкой. Тут делюсь опытом, мыслями и заметками из прочитанных книг. Написать мне в личку - @ainr_c Мой блог - https://ainur-khakimov.ru

Хотел бы поделиться с вами еще одним из моих недавних pet-проектов. Я сделал Telegram-бота, который конвертирует YouTube видео в аудио - @YoutubeAudioDownloadFreeBot. Делал я его чисто из-за любопытства. Идея проекта подпадает под главный критерий для моих пет-проектов - реализация не сложная и посильная для одного человека за относительно короткое время.
В начале делания такого бота кажется, что механизм работы будет следующий - получил ссылку от клиента, скачал видео, извлёк аудиодорожку, отправил файл. Однако если множество пользователей начнут одновременно дудосить запросами на скачивание, это может привести к длительной задержке и нагрузке на сервер.
Поэтому нужно воспользоваться более хитрым решением, которое могло бы обрабатывать большое количество запросов, не нагружая сервер. Я использовал модель основанную на очереди и воркерах, которая представлена на картинке.
Нужно создать очередь, в которую попадает каждая отправленная пользователем ссылка на видео. Эта очередь разбирается воркерами - отдельными фоновыми процессами, которые берут ссылку из очереди, скачивают файл, сохраняют в кэш и отправляют его пользователю.
Число воркеров ограничено, чтобы предотвратить перегрузку сервера. Таким образом, даже при большом количестве запросов, система будет работать стабильно, обрабатывая ссылки по мере освобождения воркеров.
Чтобы избежать повторного скачивания одного и того же видео, я добавил кэш. Интересный момент заключается в том, что файлы кэшируются в Телеграм. Да, я использую Телеграм канал @youtube_audios_free в качестве кэша, что позволяет мне не хранить файлы на моем сервере. Если пользователь пришлет ссылку на ранее загруженный файл, то бот перешлет ему сообщение из канала.
Если кому то интересно, то вот ссылка на бота - @YoutubeAudioDownloadFreeBot
Свежие посты
- Опубликовано
Классические абстракции используемые в ФП

- Опубликовано
С начала января я завел себе странную привычку...

- Опубликовано
Начал читать книгу "PostgreSQL 16 изнутри"....

- Опубликовано
Как стать сеньором
- Опубликовано
"Цель" Элияху Голдратта — это увлекательная и...

- Опубликовано
Лонгрид про Scalafix

- Опубликовано
Последовательность выполнения задач

- Опубликовано
Зеленые и красные задачи

