在Tornad中将超时设置为http请求

2024-06-28 19:19:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这部分代码:

como_url = "".join(['http://', options.como_address, ':', options.como_port, 
                        '/ztc_config?netid=0&opcode_group=0&opcode=0&start=-20s&end=-1s'])

http_client = AsyncHTTPClient()
response = yield tornado.gen.Task(http_client.fetch, como_url)

在那里我做一个http请求。我将添加一个连接超时,以确保前一个代码已经执行,这样我就可以找到我的响应。

如何添加超时时间?我得把它加入到“龙卷风”的任务呼叫中?我不知道该怎么办。


Tags: 代码clientconfighttpurlportaddressgroup
2条回答

使用HTTPRequest类向请求添加超时,而不只是将url传递给fetch。尝试:

request = tornado.httpclient.HTTPRequest(url=como_url, connect_timeout=20.0, request_timeout=20.0)
response = yield tornado.gen.Task(http_client.fetch, request)

http://www.tornadoweb.org/en/branch2.4/httpclient.html#tornado.httpclient.HTTPRequest

我也遇到过这个问题,有时候超时不起作用。 原因是SimpleAsyncHTTPClient.max_clients达到最大值。

SimpleAsyncHTTPClient.fetch_impl中,如果self.active的个数大于max_clients的个数,则timeout_handle不被赋值。

所以你加上增加龙卷风实例或者max_clients,就可以解决了

相关问题 更多 >