def __init__(self, config): self.config = config self.pool_manager = requests.Session() self.retry_methods = frozenset(['GET', 'HEAD', 'DELETE', 'OPTIONS']) # noinspection PyTypeChecker adapter = HTTPAdapter( pool_connections=config.http_pool_connections, pool_maxsize=config.http_pool_size, # max_retries=Retry( # method_whitelist=self.retry_methods, # total=config.http_max_retries, # connect=config.http_max_retries, # read=config.http_max_retries, # status_forcelist=range(500, 600) # ), # pool_block=True ) adapter.max_retries = config.http_max_retries self.pool_manager.mount('https://', adapter) self.pool_manager.mount('http://', adapter) self.pool_manager.verify = bool(self.config.verify_ssl)
def send(self): self.url = "%s%s" % (self.base_url, self.path) prepped = self.prepare() s = Session() # print(self.data) h = HTTPAdapter() h.max_retries = 10 s.mount('http://', h) s.mount('https://', h) response = s.send(prepped) response.needs_user_token = self.needs_user_token response.original_request = self return response
def __init__(self, app_id): self.app_id = app_id # Provides cookie persistence, connection-pooling, and configuration. self.session = requests.Session() # Create an requests HTTP adapter and set number of retries to attempt adapter = HTTPAdapter() adapter.max_retries = 5 # Register transport adapter for given URL prefix and enable connection retrying. self.session.mount(self.API_URL_PREFIX, adapter=adapter)
def _load_adapter(self, max_retries=None): if max_retries is None and self._adapter is not None: return self._adapter max_retries = max_retries or 0 adapter = HTTPAdapter() adapter.max_retries = Retry( total=max_retries, read=max_retries, connect=max_retries, backoff_factor=self.backoff_factor, status_forcelist=self.status_forcelist, ) return adapter
def requests_retry_session( retries=3, backoff_factor=1.0, status_forcelist=(500, 502, 504)): adapter = HTTPAdapter() adapter.max_retries = Retry( total=retries, read=retries, connect=retries, backoff_factor=backoff_factor, status_forcelist=status_forcelist, respect_retry_after_header=False ) session = requests.Session() session.mount('http://', adapter) session.mount('https://', adapter) return session