Foros del Web » Programando para Internet » PHP »

Problemas al cerrar un ciclo con funciones curl

Estas en el tema de Problemas al cerrar un ciclo con funciones curl en el foro de PHP en Foros del Web. Hello: Estoy trabajando con la libreria curl para simular hilos y ejecutar varios procesos a la vez. Todo funciona bien, es decir, ejecuta los procesos ...
  #1 (permalink)  
Antiguo 05/10/2010, 08:28
 
Fecha de Ingreso: julio-2010
Mensajes: 64
Antigüedad: 13 años, 9 meses
Puntos: 1
Problemas al cerrar un ciclo con funciones curl

Hello:
Estoy trabajando con la libreria curl para simular hilos y ejecutar varios procesos a la vez.
Todo funciona bien, es decir, ejecuta los procesos bien pero me da error de :
Fatal error: Maximum execution time of 500 seconds exceeded in C:\AppServ\www\sitioprueb\porciento_rutas_hua.php on line 80
La linea 80 pertenece al ciclo donde se manda a ejecutar la función curl_multi_exec($mh,$running);
Aqui va mi código, qué me puede estar pasando? :

<?php

include('../adodb/adodb.inc.php');
include('../adodb/adodb-error.inc.php');


// Crea los dos recursos cURL
$ch1=curl_init("http://localhost/sitioprueba/porc_rutas_huawei_1.php");
$ch2=curl_init("http://localhost/sitioprueba/porc_rutas_huawei_2.php");
$ch3 = curl_init("http://localhost/sitioprueba/porc_rutas_huawei_3.php");
$ch4= curl_init ("http://localhost/sitioprueba/porc_rutas_huawei_4.php");
$ch6= curl_init ("http://localhost/sitioprueba/porc_rutas_huawei_5.php");
$ch5= curl_init ("http://localhost/sitioprueba/porciento_rutas_ericcson_test.php");


//echo ("$ch1");
// Establecer la URL y otras opciones apropiadas
curl_setopt($ch1, CURLOPT_URL, "http://localhost/sitioprueba/porc_rutas_huawei_1.php");
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, 1); #Retorna Contenido de la Peticion, source html de la Primera conexion

curl_setopt($ch2, CURLOPT_URL, "http://localhost/sitioprueba/porc_rutas_huawei_2.php");
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1); #Retorna Contenido de la Peticion, source html de la Primera conexion

curl_setopt($ch3, CURLOPT_URL, "http://localhost/sitioprueba/porc_rutas_huawei_3.php");
curl_setopt($ch3, CURLOPT_RETURNTRANSFER, 1); #Retorna Contenido de la Peticion, source html de la Primera conexion

curl_setopt($ch4, CURLOPT_URL, "http://localhost/sitioprueba/porc_rutas_huawei_4.php");
curl_setopt($ch4, CURLOPT_RETURNTRANSFER, 1); #Retorna Contenido de la Peticion, source html de la Primera conexion

curl_setopt($ch6, CURLOPT_URL, "http://localhost/sitioprueba/porc_rutas_huawei_5.php");
curl_setopt($ch6, CURLOPT_RETURNTRANSFER, 1); #Retorna Contenido de la Peticion, source html de la Primera conexion

curl_setopt($ch5, CURLOPT_URL, "http://localhost/sitioprueba/porciento_rutas_ericcson_test.php");
curl_setopt($ch5, CURLOPT_RETURNTRANSFER, 1); #Retorna Contenido de la Peticion, source html de la Primera conexion


//print_r(curl_getinfo($ch1));

// Crea el recurso cURL múltiple
$mh = curl_multi_init();

// Añade los dos recursos
curl_multi_add_handle($mh,$ch1);

curl_multi_add_handle($mh,$ch2);
curl_multi_add_handle($mh,$ch3);
curl_multi_add_handle($mh,$ch4);
curl_multi_add_handle($mh,$ch6);
curl_multi_add_handle($mh,$ch5);

$running=null;
do {
//usleep(100);
curl_multi_exec($mh,$running);
} while ($running > 0);




// Cierra los recursos
curl_multi_remove_handle($mh, $ch1);
curl_close($ch1);
curl_multi_remove_handle($mh, $ch2);
curl_close($ch2);
curl_multi_remove_handle($mh, $ch3);
curl_close($ch3);
curl_multi_remove_handle($mh, $ch4);
curl_close($ch4);
curl_multi_remove_handle($mh, $ch6);
curl_close($ch6);
curl_multi_remove_handle($mh, $ch5);
curl_close($ch5);
curl_multi_close($mh);


?>

Agradecida de antemano.
  #2 (permalink)  
Antiguo 05/10/2010, 09:06
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problemas al cerrar un ciclo con funciones curl

El error es bastante claro y dice que el tiempo de ejecucion maximo se ha superado. Podrias modificar tu php.ini o intentar usando ini_set('max_execution_time', 'segundos');, cambiando segundos por la cantidad de tiempo deseada, dependiendo de cuanto pueda tardar el proceso completo.

Si vas a ejecutar ese script posteriormente en un servidor compartido, dudo que puedas modificar estas opciones.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 05/10/2010, 09:13
Avatar de netovs  
Fecha de Ingreso: enero-2010
Ubicación: Mexico DF
Mensajes: 150
Antigüedad: 14 años, 3 meses
Puntos: 9
Exclamación Respuesta: Problemas al cerrar un ciclo con funciones curl

Cita:
Iniciado por Triby Ver Mensaje
El error es bastante claro y dice que el tiempo de ejecucion maximo se ha superado. Podrias modificar tu php.ini o intentar usando ini_set('max_execution_time', 'segundos');, cambiando segundos por la cantidad de tiempo deseada, dependiendo de cuanto pueda tardar el proceso completo.

Si vas a ejecutar ese script posteriormente en un servidor compartido, dudo que puedas modificar estas opciones.
PERO ten cuidado en los servidores del hosting compartido creo que no puedes hacer dicha modificación, en algunos podes usar un php.ini personalizado, nos cuentas como te fue...en caso que no puedas hacer dicha modificacion te recomiendo que NO TODO LO HAGAS EN EL MISMO archivo.

Usa iframes y "llama" a cada proceso por separado SI ES POSIBLE.
__________________
No por que a mi nadie me ayudo a aprender a programar yo no les voy a ayudar ...

Comunicación Web
  #4 (permalink)  
Antiguo 05/10/2010, 09:23
 
Fecha de Ingreso: julio-2010
Mensajes: 64
Antigüedad: 13 años, 9 meses
Puntos: 1
Respuesta: Problemas al cerrar un ciclo con funciones curl

Si pero me duda no es en interpretar el error. El problema está en que en alguna parte se pierde haciendo nada despues de haber ejecutado todos los procesos ok.
Ya comprobé que ejecuta bien todos los procesos pero en algún lugar se marea. es como si me faltara cerrarle algo para que no exceda el tiempo máximo de ejecución.
  #5 (permalink)  
Antiguo 06/10/2010, 09:17
 
Fecha de Ingreso: julio-2010
Mensajes: 64
Antigüedad: 13 años, 9 meses
Puntos: 1
De acuerdo Respuesta: Problemas al cerrar un ciclo con funciones curl

Yalo resolví. Me faltaba esta línea de código para cada recurso.
curl_setopt($ch8, CURLOPT_CONNECTTIMEOUT, 15);
Gracias a todos

Etiquetas: cerrar, curl, funciones, ciclos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:35.