关闭Twisted连接

1 投票
1 回答
925 浏览
提问于 2025-04-16 00:14

各种连接,比如通过 twisted.web.client.getPage() 创建的连接,似乎会出现泄漏的问题——它们会无限期地存在,因为操作系统的超时时间是以小时为单位的,如果服务器没有及时响应的话。而且,对你得到的延迟对象设置超时是 不推荐的

那么,在你的 twisted 程序中,如何跟踪你打开的请求,并强制关闭它们呢?

(在应用程序逻辑中强制关闭超时的连接对于构建一个可扩展的 twisted 服务器非常重要;不同的反应器对允许打开的文件描述符数量有不同的限制——比如 select 的限制低至 1024!所以请帮助 twisted 用户保持打开连接的数量在合理范围内。)

1 个回答

2

getPage 这个函数可以接收一个叫 timeout 的参数。如果你给它传了一个值,意思是你希望在这个时间内(以秒为单位)收到响应。如果在这个时间内没有收到完整的响应,连接就会被关闭,getPage 返回的 Deferred 对象会出现错误。

撰写回答