diff --git a/devine/core/downloaders/requests.py b/devine/core/downloaders/requests.py index 296b7dd..54ec0f7 100644 --- a/devine/core/downloaders/requests.py +++ b/devine/core/downloaders/requests.py @@ -7,6 +7,7 @@ from pathlib import Path from typing import Any, Generator, MutableMapping, Optional, Union from requests import Session +from requests.adapters import HTTPAdapter from rich import filesize from devine.core.constants import DOWNLOAD_CANCELLED @@ -211,6 +212,12 @@ def requests( ] session = Session() + session.mount("https://", HTTPAdapter( + pool_connections=max_workers, + pool_maxsize=max_workers + )) + session.mount("http://", session.adapters["https://"]) + if headers: headers = { k: v diff --git a/devine/core/service.py b/devine/core/service.py index 40480d5..3619fae 100644 --- a/devine/core/service.py +++ b/devine/core/service.py @@ -98,9 +98,6 @@ class Service(metaclass=ABCMeta): backoff_factor=0.2, status_forcelist=[429, 500, 502, 503, 504] ), - # 16 connections is used for byte-ranged downloads - # double it to allow for 16 non-related connections - pool_maxsize=16 * 2, pool_block=True )) session.mount("http://", session.adapters["https://"])