1
有沒有辦法逐步打開多個新的持久連接到主機?我知道您可以使用下面的代碼更改持久連接的數量,但您如何建立連接?多線程請求Python
s = requests.Session()
adapter = requests.adapters.HTTPAdapter(pool_connections=5, pool_maxsize=28)
s.mount('https//', adapter)
我試圖讓數據從一個API具有以下速率限制:
- 新連接2/s的
- 請求30幀/秒
我多線程使用多處理器線程池線程,而不是多處理與多處理器線程到期對某些Windows約束。
這是函數:
def My_Func(PARAMS):
...
req = requests.Request('GET', url, headers = headers, params = params)
pre = req.prepare()
resp = s.send(pre, stream = True, verify = False)
這是代碼:
s = requests.Session()
pool = ThreadPool(10)
Data = pool.map(My_Func, PARAMS)
pool.close()
pool.join()
s.close()
然而,每所產生的線程建立一個新的連接(我認爲這是因爲其他連接還沒有被釋放回池中)。這意味着對於ThreadPool(10),我會得到一些響應429(超出連接限制)。