gpt4 book ai didi

python - AsyncHTTPClient 阻止我的 Tornado IOLoop

转载 作者:行者123 更新时间:2023-11-30 22:52:52 25 4
gpt4 key购买 nike

你好吗?

最近几天我经历了这个麻烦,我似乎无法完全理解tornado gen库。

我有这段代码,作为示例:

@gen.coroutine
def get(self, build_id=None):
status_query = self.get_query_arguments("status")
limit_query = self.get_query_arguments("limit")

results = [self._dummy() for i in range(15)]
yield results

def _dummy(self):
http_client = tornado.httpclient.AsyncHTTPClient()
return http_client.fetch("https://www.google.com", headers=self.headers, validate_cert=False)

正如我所想,我的 15 个获取 google 的请求应该几乎同时触发。“结果”列表,应该是一个 future 列表,然后,生成列表应该等待所有这些都完成。

这实际上正在发生,但发出这些请求大约需要 6 秒,并且随着我增加 for 循环的范围,它会逐渐增长。

他们不应该花大约相同的时间来准备吗?

我错过了什么吗?

非常感谢!

最佳答案

AsyncHTTPClient 的默认 max_clients 为 10。当您发起 15 个请求时,其中 10 个会立即开始,但其余 5 个必须等待其他请求完成才能开始。要开始更多并发请求,请将 max_clients 提高到更大的数字。 See Tornado's documentation for details on configuring AsyncHTTPClient.

关于python - AsyncHTTPClient 阻止我的 Tornado IOLoop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38379630/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com