我有以下代码使用 TwistedMatrix Python 框架创建 HTTPConnectionPool 和 HTTP 请求代理:
self.pool = HTTPConnectionPool(reactor, persistent=True)
self.pool.retryAutomatically = False
self.pool.maxPersistentPerHost = 1
self.agent = Agent(reactor, pool=self.pool)
然后我创建连接到本地服务器的请求:
d = self.agent.request(
"GET",
url,
Headers({"Host": ["localhost:8333"]}),
None)
问题是:当同时发出多个请求时,本地服务器有时会出现不正确的行为,所以我想将同时请求的数量限制为 1。
额外的请求应该排队,直到挂起的请求完成。
我试过了,self.pool.maxPersistentPerHost = 1
但它不起作用。
带有 HTTPConnectionPool 的 twisted.web.client.Agent 是否支持限制每个主机的最大连接数,还是我必须自己实现请求 FIFO 队列?