2010-02-09 27 views
7

Hice un rastreador web simple usando PHP (y cURL). Analiza páginas de 60 000 html y retrea la información del producto (es una herramienta en una intranet).Cómo limitar las conexiones simultáneas utilizadas por cURL

Mi principal preocupación es la conexión simultánea. Me gustaría limitar el número de conexiones, así que pase lo que pase, el rastreador nunca usaría más de 15 conexiones simultáneas.

El servidor bloquea el IP siempre que se alcanza el límite de 25 conexiones simultáneas por IP y por algún motivo, no puedo cambiarlo por el servidor, así que tengo que encontrar la manera de que mi script nunca use más que X conexiones concurrentes.

¿Esto es posible?

¿O quizás debería volver a escribir todo en otro idioma?

Gracias, se agradece cualquier ayuda!

Respuesta

5

bien puede usar curl_set_opt(CURLOPT_MAXCONNECTS, 15); para limitar el número de conexiones. Pero es posible que también desee crear un administrador de conexión simple si eso no lo hace por usted.

+1

¡No sé si debería sentirme rejuvenecido o completamente tonto! No estaba al tanto de esta opción, pero aun así juro que leí todo el documento cURL ... ¡más de una vez! No importa, publicaré mi resultado. ¡Muchas gracias amigo! – josephdotca

0

Tal vez escribir una sencilla tabla de conexión:

target_IP   | active_connections 

1.2.3.4     10 
4.5.6.7     5 

cada llamada Curl aumentaría el número de conexiones, cada cierre disminuirlo.

Puede almacenar la tabla en una tabla mySQL, o Memcache para la velocidad.

Cuando encuentre una IP que ya tenga su conexión máxima, deberá implementar una cola "try later".

Cuestiones relacionadas