Sto utilizzando le richieste di Python Library con sessioni:Nella libreria delle richieste, come posso evitare l'avviso "HttpConnectionPool è pieno, scartando la connessione"?
def _get_session(self):
if not self.session:
self.session = requests.Session()
return self.session
E a volte mi sto questo avvertimento nei miei ceppi:
[2014/May/12 14:40:04 WARNING ] HttpConnectionPool is full, discarding connection: www.ebi.ac.uk
La mia domanda è: perché questo sta avvertendo e non un'eccezione ?
Questo è il codice responsabile di questo (da 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)
Perché questa eccezione viene catturato qui? Se è stato controrilanciato, ho potuto gestire questa eccezione nel mio codice, creando una nuova sessione e cancellando quella vecchia.
Se si tratta solo di un avviso, significa che non influisce in alcun modo sui miei risultati? Posso ignorarlo? In caso contrario, come posso gestire questa situazione?
hai provato a impostare 'self.block' su' True'? – roippi
Desidero davvero che le mie richieste vengano bloccate? Forse questo avvertimento sparirà ma ci sono altre conseguenze? C'è qualche ragione per cui questo non è Vero di default, giusto? – mnowotka
': param block: Se impostato su True, non verranno utilizzate più di ** connessioni ** maxsize alla volta. Se non sono disponibili connessioni libere, la chiamata verrà bloccata fino al rilascio di una connessione. – roippi