Как правильно использовать HTTPAdapter с асинхронным программированием и вызовом метода?Все эти запросы отправляются в один и тот же домен.
Я делаю некоторое асинхронное программирование в Celery с использованием eventlet и проверяю нагрузку на одном из моих сайтов.У меня есть метод, который я вызываю, который делает запрос к URL.
def get_session (url): # получает сессию, возвращает исходные заголовки, proxies = header_proxy () # устанавливает все необходимые переменные в None, чтобы в случае ошибки # мы могли убедиться, что не прервали ответ= Нет status_code = Нет out_data = Нет содержимого = Нет
try:
# we are going to use request-html to be able to parse the
# data upon the initial request
with HTMLSession() as session:
# you can swap out the original request session here
# session = requests.session()
# passing the parameters to the session
session.mount('https://', HTTPAdapter(max_retries=0, pool_connections=250, pool_maxsize=500))
response = session.get(url, headers=headers, proxies=proxies)
status_code = response.status_code
try:
# we are checking to see if we are getting a 403 error on all requests. If so,
# we update the status code
code = response.html.xpath('''//*[@id="accessDenied"]/p[1]/b/text()''')
if code:
status_code = str(code[0][:-1])
else:
pass
except Exception as error:
pass
# print(error)
# assign the content to content
content = response.content
except Exception as error:
print(error)
pass
Если я опускаю параметры pool_connections
и pool_maxsize
и запускаю код, я получаю сообщение об ошибке, указывающее, что мне не хватаетоткрытые связи.Однако я не хочу без необходимости открывать большое количество соединений, если мне это не нужно.