2012-07-30 14 views
5

Ho una lunga lista di URL che devo aprire per il mio servizio. Ogni volta che tento di aprire l'intero elenco, ricevo molti errori come questo quando avvio il programma: [Errno 24] Too many open files. Sto usando urllib2 e gevent.Python urllib2 Errori

Qualcuno ha qualche soluzione?

Grazie.

+4

necessario mostrare un po 'di codice. sscce.org –

+2

e traceback completo –

risposta

2

Utilizzare Gevent.pool per aprire solo una certa quantità di URL alla volta, quindi riutilizzare questi greenlet quando hanno aperto un URL.

+0

Grazie, questo ha risolto il problema! –

0

Dato che non sappiamo ancora cosa si fa esattamente, posso solo indovinare: si aprono più URL contemporaneamente e solo dopo si tenta di leggerli. Invece, dovresti/potresti aprire-leggere-chiuderli e poi passare al successivo.

In alternativa, è possibile creare un caricatore di URL con capacità simultanea: aprire alcuni URL e provare a leggerli contemporaneamente. Dopo aver chiuso uno, puoi iniziare ad aprire il prossimo. Se lo limiti a 5 o 10 in una volta, non dovresti avere più problemi.

Problemi correlati