Título: Curl y diferentes peticiones/conexiones Publicado por: dimitrix en 9 Septiembre 2014, 17:14 pm Hola a todos!
Os explico, tengo un proyecto y la parte que nos importa del proyecto tiene dos ficheros: index.php // Llama al fichero curl curl.php // Parsea una web y la guarda en la base de datos El problema es que que tiene que parsear constantemente webs (tipo bot) y claro hasta que no termina una no pasa a la siguiente... Así que me gustaría saber cual es la forma más correcta y óptima para que index.php realice 50 peticiones a curl.php, para que se vayan ejecutando 50 curl.php en segundo plano. Se hacerlo de diferentes formas, pero no creo que sea lo más óptimo ¿Cómo lo haríais vosotros? Un saludo! Título: Re: Curl y diferentes peticiones/conexiones Publicado por: #!drvy en 9 Septiembre 2014, 17:31 pm La verdad es que aquí te vendrían bien threads aunque PHP no esta digamos al nivel de eso xD
Sin embargo, has pensado en utilizar multi_curl ? http://curl.haxx.se/libcurl/php/examples/multi.html Saludos Título: Re: Curl y diferentes peticiones/conexiones Publicado por: dimitrix en 9 Septiembre 2014, 22:39 pm Cuando llegue a casa lo miro, lo que he pensado es hacer algún script .sh que ejecute 50 ficheros por Curl... voy a ver esta noche...
Título: Re: Curl y diferentes peticiones/conexiones Publicado por: Graphixx en 10 Septiembre 2014, 17:06 pm No se si hacer multiples llamadas desde index a curl sirva, dejo esto por aqui:
Hacer un POST Dinamico en PHP [Hacer Post a dos paginas php] http://foro.elhacker.net/php/hacer_un_post_dinamico_en_php_hacer_post_a_dos_paginas_php-t421006.0.html Título: Re: Curl y diferentes peticiones/conexiones Publicado por: JorgeEMX en 14 Septiembre 2014, 06:09 am No se si hacer multiples llamadas desde index a curl sirva, dejo esto por aqui: Hacer un POST Dinamico en PHP [Hacer Post a dos paginas php] http://foro.elhacker.net/php/hacer_un_post_dinamico_en_php_hacer_post_a_dos_paginas_php-t421006.0.html No sirve de absolutamente nada. Para el tema principal, yo te recomendaría algún lenguaje que soporte arquitectura orientada a eventos (como lo es NodeJS, tengo entendido que con Python y Ruby también es posible). Título: Re: Curl y diferentes peticiones/conexiones Publicado por: dimitrix en 14 Septiembre 2014, 18:29 pm JorgeEMX hay mil maneras de hcaerlo con PHP, tanto con Shell Script como con cron, lo único que digo es que hay que ver cual es la mejor manera...
Título: Re: Curl y diferentes peticiones/conexiones Publicado por: JorgeEMX en 14 Septiembre 2014, 21:31 pm JorgeEMX hay mil maneras de hcaerlo con PHP, tanto con Shell Script como con cron, lo único que digo es que hay que ver cual es la mejor manera... Acaso viste de que va la librería que se menciona en el otro tema?? A lo que me refiero que cómo lo están usando en el otro topic no es viable, ya que las llamadas se ejecutan en el orden en que ha sido escritas y hasta que no termina una empieza otra. Aquí te pongo el método principal, y que hace el request, de dicha librería: Código
Y si quieres algo realmente eficaz para manejar múltiples llamadas usa algún lenguaje de programación que soporte la arquitectura que te comento. Título: Re: Curl y diferentes peticiones/conexiones Publicado por: MinusFour en 14 Septiembre 2014, 23:08 pm Multi curl es una buena idea:
http://php.net/manual/en/function.curl-multi-init.php Citar Allows the processing of multiple cURL handles in parallel. Incluso puedes implementar callbacks con: Código Otra forma de hacerlo es con el modo non-blocking de los streams: http://darklaunch.com/2013/03/23/php-non-blocking-fopen-file-get-contents-using-stream-set-blocking Código
Recomiendo cURL sobre fopen si lo tienes. Título: Re: Curl y diferentes peticiones/conexiones Publicado por: JorgeEMX en 15 Septiembre 2014, 00:28 am Indagando un poco, parece otra muy buena opción usar stream_select http://php.net/manual/es/function.stream-select.php . Viene con PHP por defecto al parecer y en algunos artículos sacados de Google hablan de muy buenos resultados. A mi me ha dado curiosidad y voy hacer algunas pruebas (según entiendo hasta procesos del sistema puedes hacer en paralelo).
http://wezfurlong.org/blog/2005/may/guru-multiplexing/ Título: Re: Curl y diferentes peticiones/conexiones Publicado por: dimitrix en 15 Septiembre 2014, 01:52 am Citar Acaso viste de que va la librería que se menciona en el otro tema?? Sí, lo ví, pero creo que no te expresaste con claridad. Gracias por el código. MinusFour gracias por lo de los callbacks, aunque no lo necesito es más que interesante :-) Indagando un poco, parece otra muy buena opción usar stream_select De nuevo gracias por la info :-) |