Python:使用HTTPAdapter进行异步编程和pool_maxsize

时间:2019-03-18 19:22:21

标签: python asynchronous python-requests celery

将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参数,并运行了代码,则会收到一条错误消息,指示我没有足够的打开连接。但是,如果不需要,我不想不必要地打开大量连接。

1 个答案:

答案 0 :(得分:0)

基于此... https://laike9m.com/blog/requests-secret-pool_connections-and-pool_maxsize,89/我想这可能适用于主机,而不是异步任务。因此,我将最大数量设置为每个主机可以重用的最大连接数量。如果我多次访问某个域,则该连接将被重用。