diff --git a/apps/musicseerr/tasks.py b/apps/musicseerr/tasks.py index ef7d9e9..d19419a 100644 --- a/apps/musicseerr/tasks.py +++ b/apps/musicseerr/tasks.py @@ -5,12 +5,15 @@ import logging import re import requests import json +import threading from bs4 import BeautifulSoup from urllib.parse import urljoin from mutagen.mp3 import EasyMP3 from mutagen.id3 import ID3 from curl_cffi import requests as cf_requests +DOWNLOAD_SEMAPHORE = threading.Semaphore(5) + # Configure Logger logging.basicConfig(level=logging.INFO) logger = logging.getLogger("musicseerr-tasks") @@ -483,6 +486,11 @@ def symlink_existing_tracks(temp_dir: str): def run_download_task(task_id: str, query: str, proxy_url: str, jobs_dict: dict, chat_id: int = None): + with DOWNLOAD_SEMAPHORE: + _run_download_task_impl(task_id, query, proxy_url, jobs_dict, chat_id) + + +def _run_download_task_impl(task_id: str, query: str, proxy_url: str, jobs_dict: dict, chat_id: int = None): """ Core download manager task that runs in the background. """