将HTTPAdapter用于异步编程并调出方法的正确方法是什么?所有这些请求都被发送到同一域。
我正在Celery中使用eventlet进行一些异步编程,并测试我的站点之一上的负载。我有一个方法,可以向网址发出请求。
def get_session(url): #获取会话返回源 标头,代理= header_proxy() #将所有必要的变量设置为None,以便在发生错误时 #我们可以确保我们不会破坏 响应=无 status_code =无 out_data =无 内容=无
MyLabelTitle
如果我省略了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
参数,并运行了代码,则会收到一条错误消息,指示我没有足够的打开连接。但是,如果不需要,我不想不必要地打开大量连接。
答案 0 :(得分:0)
基于此... https://laike9m.com/blog/requests-secret-pool_connections-and-pool_maxsize,89/我想这可能适用于主机,而不是异步任务。因此,我将最大数量设置为每个主机可以重用的最大连接数量。如果我多次访问某个域,则该连接将被重用。