From 6c4530c70d64bcf356aae60899b5d92442044c25 Mon Sep 17 00:00:00 2001 From: fchinembiri Date: Fri, 10 Jul 2026 21:20:43 +0200 Subject: [PATCH] fix(musicseerr): implement download concurrency limit of 5 using threading.Semaphore --- apps/musicseerr/tasks.py | 8 ++++++++ 1 file changed, 8 insertions(+) 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. """