zoukankan      html  css  js  c++  java
  • 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',
    )

     三、问题解决

  • 相关阅读:
    Codeforces_739_B
    Codeforces_732_D
    D
    C
    E
    商汤AI园区的n个路口(中等)
    D. The Fair Nut and the Best Path
    HDU6446
    分解质因数(线性筛)
    D. Extra Element
  • 原文地址:https://www.cnblogs.com/ygbh/p/14036609.html
Copyright © 2011-2022 走看看