मैं अजगर अनुरोध उपयोग कर रहा हूँ पुस्तकालय सत्र के साथ:अनुरोध पुस्तकालय में, मैं "HttpConnectionPool पूर्ण है, कनेक्शन को छोड़कर" चेतावनी से कैसे बच सकता हूं?
def _get_session(self):
if not self.session:
self.session = requests.Session()
return self.session
और कभी-कभी मैं अपने लॉग में इस चेतावनी हो रही है:
[2014/May/12 14:40:04 WARNING ] HttpConnectionPool is full, discarding connection: www.ebi.ac.uk
मेरा प्रश्न है: चेतावनी क्यों यह जाता है और नहीं एक अपवाद ?
इस कोड को इस (http://pydoc.net/Python/requests/0.8.5/requests.packages.urllib3.connectionpool/ से) के लिए जिम्मेदार है:
def _put_conn(self, conn):
try:
self.pool.put(conn, block=False)
except Full:
# This should never happen if self.block == True
log.warning("HttpConnectionPool is full, discarding connection: %s"
% self.host)
क्यों इस अपवाद यहाँ catched है? यदि इसका पुन: उपयोग किया गया था, तो मैं नया सत्र बनाकर और पुराने को हटाकर, इस कोड को अपने कोड में संभाल सकता हूं।
यदि यह केवल एक चेतावनी है, तो इसका मतलब यह है कि यह मेरे परिणामों को किसी भी तरह से प्रभावित नहीं करता है? क्या मैं इसे अनदेखा कर सकता हूं? यदि नहीं, तो मैं इस स्थिति को कैसे संभाल सकता हूं?
क्या आपने 'self.block' को' True' पर सेट करने का प्रयास किया था? – roippi
क्या मैं वास्तव में अपने अनुरोधों को अवरुद्ध करना चाहता हूं? शायद यह चेतावनी गायब हो जाएगी लेकिन क्या कोई अन्य परिणाम हैं? कुछ कारण यह डिफ़ॉल्ट रूप से सही नहीं है, है ना? – mnowotka
': param block: यदि सही पर सेट किया गया है, तो ** अधिकतम ** ** ** कनेक्शन का उपयोग एक समय में नहीं किया जाएगा। जब कोई मुफ्त कनेक्शन उपलब्ध नहीं होता है, तो कॉल तब तक अवरुद्ध हो जाएगा जब तक कोई कनेक्शन जारी नहीं किया जाता है। – roippi