Добавлено описание проекта PVideoDl, включая функциональность, стек технологий, архитектуру, инструкции по запуску и API. Обновлён README.md для лучшего понимания проекта.

This commit is contained in:
Leonid Pershin
2026-06-19 12:07:55 +03:00
parent e15d0af056
commit 3281fa2a5d
43 changed files with 4699 additions and 0 deletions
+31
View File
@@ -0,0 +1,31 @@
"""Абстракция очереди задач.
Сегодня — обёртка над asyncio.Queue. Завтра можно подменить на Redis/RabbitMQ,
не трогая вызовы в сервисах: интерфейс DownloadQueue остаётся прежним.
"""
from __future__ import annotations
import asyncio
class DownloadQueue:
"""Очередь идентификаторов загрузок, ожидающих обработки воркерами."""
def __init__(self) -> None:
self._queue: asyncio.Queue[str] = asyncio.Queue()
async def add(self, download_id: str) -> None:
await self._queue.put(download_id)
async def get(self) -> str:
return await self._queue.get()
def task_done(self) -> None:
self._queue.task_done()
async def join(self) -> None:
await self._queue.join()
def qsize(self) -> int:
return self._queue.qsize()