Tengo que realizar un gran trabajo de fragmentación: la mayor parte del tiempo del script se usa bloqueando debido a una gran cantidad de latencia de red. Estoy tratando de multihilo la secuencia de comandos para que pueda realizar varias solicitudes al mismo tiempo, pero aproximadamente el 10% de mis hilos morir con el siguiente errorSolicitudes web de subprocesos múltiples en python: 'Nombre o servicio no conocido'
URLError: <urlopen error [Errno -2] Name or service not known>
El otro 90% se hayan completado satisfactoriamente. Estoy solicitando varias páginas del mismo dominio, por lo que parece que puede haber algún problema de DNS. Realizo 25 solicitudes a la vez (25 hilos). Todo funciona bien si me limito a 5 solicitudes a la vez, pero una vez que llego a alrededor de 10 solicitudes, a veces empiezo a ver este error.
He leído Repeated host lookups failing in urllib2 que describe el mismo problema que he tenido y he seguido las sugerencias allí contenidas, pero fue en vano.
También he intentado usar el módulo de multiprocesamiento en lugar de multi-threading, obtengo el mismo comportamiento, aproximadamente 10% de los procesos mueren con el mismo error, lo que me lleva a pensar que esto no es un problema con urllib2 pero algo más.
¿Puede alguien explicar lo que está pasando y sugerir cómo solucionarlo?
ACTUALIZACIÓN
Si código manualmente la dirección IP del sitio en mi guión todo funciona perfectamente, por lo que este error se produce en algún momento durante la búsqueda de DNS.
¿Tiene acceso al servidor? Es posible que se encuentre con algún elemento anti-negación de servicio, o si el servidor no es tan pesado, entonces en realidad podría estar sobrecargándolo ... – jswolf19
Es un sitio web importante que es capaz de manejar cientos o miles de solicitudes simultáneas, mi 25 ni siquiera hace una pequeña mella. Estoy bastante seguro de que es un problema de resolución DNS, porque si reemplazo el nombre de dominio con la dirección IP mi script se ejecuta perfectamente, por lo que el sitio web no me está excluyendo explícitamente. En este punto solo quiero entender por qué las búsquedas de DNS están fallando. –
Entonces puede ser un problema con el servidor DNS que solo permite tantas solicitudes de un cliente durante un cierto período de tiempo, o lo que sea. – jswolf19