Use exponential backoff when retrying HTTP connections
This commit is contained in:
parent
44ee553c0a
commit
e9fcdb0191
@ -27,7 +27,9 @@ import requests
|
||||
|
||||
import blender_asset_tracer.pack as bat_pack
|
||||
import blender_asset_tracer.pack.transfer as bat_transfer
|
||||
from blender_asset_tracer.pack.shaman.transfer import ShamanTransferrer
|
||||
|
||||
from .transfer import ShamanTransferrer
|
||||
from .client import ShamanClient
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
@ -55,8 +57,8 @@ class ShamanPacker(bat_pack.Packer):
|
||||
def _get_auth_token(self) -> str:
|
||||
# TODO: get a token from the Flamenco Server.
|
||||
log.warning('Using temporary hack to get auth token from Shaman')
|
||||
resp = requests.get(urllib.parse.urljoin(self.shaman_endpoint, 'get-token'),
|
||||
timeout=10)
|
||||
unauth_shaman = ShamanClient('', self.shaman_endpoint)
|
||||
resp = unauth_shaman.get('get-token', timeout=10)
|
||||
resp.raise_for_status()
|
||||
return resp.text
|
||||
|
||||
|
||||
@ -20,6 +20,7 @@
|
||||
|
||||
import urllib.parse
|
||||
|
||||
import urllib3.util.retry
|
||||
import requests.adapters
|
||||
|
||||
|
||||
@ -30,10 +31,16 @@ class ShamanClient:
|
||||
self._auth_token = auth_token
|
||||
self._base_url = base_url
|
||||
|
||||
http_adapter = requests.adapters.HTTPAdapter(max_retries=5)
|
||||
retries = urllib3.util.retry.Retry(
|
||||
total=10,
|
||||
backoff_factor=0.05,
|
||||
)
|
||||
http_adapter = requests.adapters.HTTPAdapter(max_retries=retries)
|
||||
self._session = requests.session()
|
||||
self._session.mount('https://', http_adapter)
|
||||
self._session.mount('http://', http_adapter)
|
||||
|
||||
if auth_token:
|
||||
self._session.headers['Authorization'] = 'Bearer ' + auth_token
|
||||
|
||||
def request(self, method: str, url: str, **kwargs) -> requests.Response:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user