3

新しいリクエストセッションがさまざまな方法でインスタンス化されている場合...

myutil.py

import requests

def method1():
    s1 = requests.Session()

def method2():
    s1 = requests.Session()

requests.packages.urllib3.poolmanager.PoolManager境界はどこですか?接続プールが s1 と s2 の間で共有されるようにグローバルにバインドされていますか、それとも s1 と s2 が異なる接続プールを持つように各メソッドのスタックにバインドされていますか?

各メソッドのスタックにバインドされている場合、接続プールを共有するにはどのようなオプションが必要ですか? たとえば、トランスポート アダプターを作成してから、メソッド間で共有する必要があります。

myutil.py

import requests
from requests.adapters import HTTPAdapter

httpAdapter = HTTPAdapter(pool_connections=10, pool_maxsize=100)

def method1():
    s1 = requests.Session()
    s1.mount('https://', httpAdapter)

def method2():
    s1 = requests.Session()
    s2.mount('https://', httpAdapter)
4

1 に答える 1

0

いくつかのテストを行ったところ、プールがグローバルにバインドされていないようです。

詳細については、こちらを参照してください。

于 2015-03-15T13:55:01.163 に答える