Requests pool_maxsize ਤੋਂ ਵੱਧ ਕਨੈਕਸ਼ਨ ਕਿਉਂ ਖੋਲ੍ਹਦਾ ਹੈ
ਸੀਮਤ ਪੂਲ ਲਈ pool_block ਵਰਤੋ, ਅਤੇ ਜਦੋਂ ਸੀਮਾ ਨੂੰ ਪ੍ਰੌਕਸੀ ਰਾਹੀਂ ਸਾਰੀ ਟ੍ਰੈਫਿਕ ਕਵਰ ਕਰਨੀ ਹੋਵੇ ਤਾਂ ਐਪਲੀਕੇਸ਼ਨ-ਪੱਧਰ ਦਾ ਬਜਟ ਸ਼ਾਮਲ ਕਰੋ।
ਡਿਫ਼ਾਲਟ pool_block=False ਨਾਲ, pool_maxsize ਪੂਲ ਵਿੱਚ ਰੱਖੇ ਕਨੈਕਸ਼ਨਾਂ ਨੂੰ ਸੀਮਤ ਕਰਦਾ ਹੈ, ਇੱਕੋ ਸਮੇਂ ਦੇ ਹਰ ਕਨੈਕਸ਼ਨ ਨੂੰ ਨਹੀਂ। Requests ਵਾਧੂ ਕਨੈਕਸ਼ਨ ਬਣਾ ਕੇ ਬਾਅਦ ਵਿੱਚ ਸੁੱਟ ਸਕਦਾ ਹੈ।
ਮੌਜੂਦਾ ਸੈਸ਼ਨ ਦੀਆਂ HTTPS ਬੇਨਤੀਆਂ ਵੱਲੋਂ ਵਰਤੇ ਜਾਂਦੇ ਸੀਮਤ ਪੂਲ ਲਈ:
from requests.adapters import HTTPAdapter
adapter = HTTPAdapter(
pool_connections=10,
pool_maxsize=4,
pool_block=True,
)
session.mount("https://", adapter)ਮਾਊਂਟ HTTPS ਮੰਜ਼ਿਲ URL ਚੁਣਦਾ ਹੈ। HTTP ਬੇਨਤੀਆਂ http:// ਹੇਠ ਮਾਊਂਟ ਕੀਤੇ ਐਡਾਪਟਰ ਦੀ ਵਰਤੋਂ ਕਰਦੀਆਂ ਹਨ।
| ਇਨਪੁਟ | ਇਹ ਕੀ ਨਿਯੰਤਰਿਤ ਕਰਦਾ ਹੈ |
|---|---|
| pool_connections | ਮੈਨੇਜਰ ਕਿੰਨੇ ਪੂਲ ਕੈਸ਼ ਕਰਦਾ ਹੈ |
| pool_maxsize | ਇੱਕ ਪੂਲ ਅੰਦਰ ਕਨੈਕਸ਼ਨ |
| pool_block=True | ਵਾਧੂ ਬਣਾਉਣ ਦੀ ਥਾਂ ਪੂਲ ਕਨੈਕਸ਼ਨ ਦੀ ਉਡੀਕ ਕਰਨਾ |
Requests ਪ੍ਰੌਕਸੀ URL ਅਨੁਸਾਰ ਪ੍ਰੌਕਸੀ ਮੈਨੇਜਰ ਵੀ ਕੈਸ਼ ਕਰਦਾ ਹੈ। ਇਹ ਮੁੱਲ ਘੁੰਮਦੀਆਂ ਪ੍ਰੌਕਸੀਆਂ ਅਤੇ ਮੰਜ਼ਿਲਾਂ ਦੀ ਸੂਚੀ ਉੱਤੇ ਇੱਕ ਕੁੱਲ ਸੀਮਾ ਨਹੀਂ ਬਣਾਉਂਦੇ। ਜੇ ਲੋੜ ਹੈ ਕਿ ਸਾਰਾ ਕੰਮ ਇੱਕ ਹੀ ਵਿਚੋਲੇ ਰਾਹੀਂ ਜਾਵੇ, ਤਾਂ ਐਪਲੀਕੇਸ਼ਨ-ਪੱਧਰ ਦਾ ਸਮਕਾਲੀ ਬਜਟ ਵਰਤੋ।
ਬਲੌਕਿੰਗ ਜਵਾਬ ਛੱਡਣਾ ਜ਼ਰੂਰੀ ਬਣਾ ਦਿੰਦੀ ਹੈ: ਬਾਡੀ ਵਰਤੋ ਜਾਂ ਸਟ੍ਰੀਮਿੰਗ ਜਵਾਬ ਬੰਦ ਕਰੋ ਤਾਂ ਜੋ ਉਡੀਕ ਰਿਹਾ ਕੰਮ ਅੱਗੇ ਵਧ ਸਕੇ। ਦਿਖਾਈ ਗਈ ਬਣਤਰ ਵਿੱਚ Requests ਦਾ ਐਡਾਪਟਰ ਇਸ ਪੂਲ-ਉਡੀਕ ਲਈ ਵੱਖਰਾ ਟਾਈਮਆਊਟ ਨਹੀਂ ਦਿੰਦਾ।