使用httpadapter与异步编程并呼吁方法的正确方法是什么?所有这些请求都在同一域中提出。
我正在使用Eventlet在芹菜中进行一些异步编程,并在我的一个网站上测试负载。我有一种呼唤的方法,该方法向URL提出了请求。
def get_session(url): #获取会话返回源 标题,代理= header_proxy() #将我们所有必要的变量设置为无 #我们可以确保我们不会破裂 响应=无 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
参数,并且运行代码,则会出现一个错误,表明我没有足够的打开连接。但是,如果我不需要,我不想不必要地打开大量连接。
基于此...不是异步任务。因此,我将最大数字设置为每个主机可以重复使用的最大连接数。如果我多次击中域,则将重复使用连接。