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 ನ ಅಡಾಪ್ಟರ್ ಈ ಪೂಲ್ ನಿರೀಕ್ಷೆಗೆ ಪ್ರತ್ಯೇಕ ಟೈಮೌಟ್ ಒದಗಿಸುವುದಿಲ್ಲ.