PyParallelCurl

Una interfaz simple para obtener recursos de URL en paralelo sin hilos
Descargar ahora

PyParallelCurl Clasificación y resumen

Anuncio publicitario

  • Rating:
  • Licencia:
  • BSD License
  • Nombre del editor:
  • Pete Warden
  • Sitio web del editor:
  • http://googlehotkeys.com/

PyParallelCurl Etiquetas


PyParallelCurl Descripción

Una interfaz simple para recuperar los recursos de URL en paralelo sin hilos. PyParallelCurl es un módulo de Python que proporciona una interfaz fácil de usar para permitirle ejecutar múltiples recuperaciones de URL de curl en paralelo en Python, sin hilos. Para probarlo, vaya a la línea de comandos, CD a esta carpeta y RUN.TEST .pythis debe ejecutar 100 búsquedas a través de la API de Google, imprimiendo los resultados. Para ver qué tipo de diferencia de rendimiento que ejecuta las solicitudes paralelas lo obtiene, intente alterar el valor predeterminado de 10 solicitudes que se ejecutan en paralelo utilizando el argumento opcional de secuencia de comandos, y la temporización de cuánto tiempo toma: hora ./test.py 1 tiempo ./test.py 20the Primero solo permite que una solicitud se ejecute a la vez, serializando las llamadas. Veo que esto toma alrededor de 100 segundos. ¡La segunda carrera tiene 20 en vuelo a la vez, y toma 11 segundos! Sin embargo, tenga advertido, es posible abrumar su objetivo si despierte demasiadas solicitudes a la vez. Puede terminar con su IP prohibido acceder a ese servidor, o golpear otros límites de API. La clase está diseñada para facilitar la ejecución de múltiples solicitudes de rizo en paralelo, en lugar de esperar a que terminen antes de comenzar el siguiente. Bajo el capó, utiliza CURL_MUMUTI_EXEC, pero como descubro que la interfaz se confundía dolorosamente, quería uno que correspondiera a las tareas que quería ejecutar. Para usarlo, Easy_Install Pycurl, Importar PyParallelCurl, luego crear el objeto ParallelCurl: ParallelCurl = ParallelCurl (10 ) El primer argumento al constructor es el número máximo de recuperaciones sobresalientes para permitirlo antes de bloquear para esperar a que termine. Puede cambiar esto más tarde usando SetMaxRequests () El segundo argumento opcional es una matriz de opciones de curl en el formato utilizado por CURL_SETEPT_ARRAY () Siguiente, inicie una URL Fetch: parallelcurl.startrequest ('http://example.com', on_request_done, {'Somekey': 'SafeValue'}) El primer argumento es la dirección que debe ser recuperada, la segunda es la función de devolución de llamada que se ejecutará una vez que se realiza la solicitud, el tercero es una 'cookie', que puede contener datos arbitrarios para ser Pasado a la llamada de llamada, la llamada StarTrequest volverá inmediatamente, siempre que sea menos que el número máximo de solicitudes sea excepcional. Una vez que se realiza la solicitud, se llamará la función de devolución de llamada, por ejemplo: ON_REQUEST_DONE (contenido, 'http://example.com', CH, {'Somekey': 'SAYVALUE'}) La devolución de llamada debe tomar cuatro argumentos. La primera es una cadena que contiene el contenido que se encuentra en la URL. El segundo es la URL original solicitada, el tercero es el asa de rizo de la solicitud que se puede consultar para obtener los resultados, y el cuarto es el valor de 'cookie' arbitraria que usted asoció con este objeto. Esta cookie contiene datos definidos por el usuario. Incluyen, puede tener solicitudes pendientes al final de su script, debe llamarParallelCurl.FinishallRequests () antes de salir. ¡Si no lo hace, las solicitudes finales pueden dejarse sin procesar! Esto en realidad también se llama en el destructor de la clase, pero definitivamente es la mejor práctica para llamar a esto de manera complicante. Requisitos: · Python


PyParallelCurl Software relacionado

tw2.devtools

Kit de herramientas de creación de widgets web basado en widgets TurboGEARS - Herramientas de desarrollo ...

128

Descargar

Pylru

Una implementación de caché menos utilizada recientemente (LRU) ...

157

Descargar