tornado.simple_httpclient.HTTPTimeoutError: Timeout while connecting问题的解决
问题:发送大量并发的时候,request_timeout和connect_timeout时间一到,默认的时长:20S, 不管还有多少没有请求,剩下都会抛异常HTTPTimeoutError【Timeout in request queue】 解决方法如下: 步骤1、AsyncHTTPClient.__new__() 步骤2、Configurable.__new__() ==> 所以传入的参数存放在init_kwargs 步骤3、instance.initialize(*args, **init_kwargs) <=等价=> SimpleAsyncHTTPClient().initialize(*args, **init_kwargs) 步骤4、SimpleAsyncHTTPClient().fetch_impl() 【主要问题点在这里,重点查看该代码】
一、分析源码
二、解决方案
# 加大并发数量 http_client = AsyncHTTPClient(max_clients=500) request_timeout和connect_timeout设置为0 HTTPRequest( url=url, method='POST', body=urlencode(post_body).encode('utf-8'), validate_cert=False, request_timeout=0, connect_timeout=0, headers=self.header, user_agent='nginx', )
三、问题解决
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步