diff --git a/devine/core/downloaders/requests.py b/devine/core/downloaders/requests.py index 54ec0f7..c6d23fc 100644 --- a/devine/core/downloaders/requests.py +++ b/devine/core/downloaders/requests.py @@ -1,4 +1,5 @@ import math +import os import time from concurrent import futures from concurrent.futures.thread import ThreadPoolExecutor @@ -196,6 +197,9 @@ def requests( if not isinstance(urls, list): urls = [urls] + if not max_workers: + max_workers = min(32, (os.cpu_count() or 1) + 4) + urls = [ dict( save_path=save_path, @@ -214,7 +218,8 @@ def requests( session = Session() session.mount("https://", HTTPAdapter( pool_connections=max_workers, - pool_maxsize=max_workers + pool_maxsize=max_workers, + pool_block=True )) session.mount("http://", session.adapters["https://"])