26 lines
820 B
Python
26 lines
820 B
Python
import logging
|
|
|
|
from t_tech.invest.retrying.settings_protocol import RetryClientSettingsProtocol
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
class BaseRetryManager:
|
|
def __init__(self, settings: RetryClientSettingsProtocol):
|
|
self._settings = settings
|
|
|
|
def get_initial_retries(self):
|
|
retries_left = self._settings.max_retry_attempt
|
|
if not self._settings.use_retry:
|
|
retries_left = 0
|
|
logger.debug("Retrying disabled")
|
|
retries_left += 1
|
|
return retries_left
|
|
|
|
@staticmethod
|
|
def extract_seconds_to_sleep(metadata) -> int:
|
|
logger.debug("Received metadata %s", metadata)
|
|
seconds_to_sleep = metadata.ratelimit_reset
|
|
logger.debug("Sleeping for %s seconds", seconds_to_sleep)
|
|
return seconds_to_sleep
|