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',
)

 三、問題解決

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM