PHP - Tiempo maximo de ejecucion de una consulta

 
Vista:

Tiempo maximo de ejecucion de una consulta

Publicado por Sergio (1 intervención) el 05/04/2017 01:53:15
Buenas noches, tengo un problema con un script en el que ejecuta bastantes peticiones, en bucle, el problema es que normalmente lo ejecuta de inmediato en menos de un segundo, y otras veces por dificultades de red se paraliza el script y hasta que no obtiene respuesta no sigue, lanzo "$estado = $servidor->Estado;" y dependiendo al estado de la red me responde inmediato, en 1 segundo o en 10 segundos. Entonces me gustaría que me explicaran como puedo indicar al script php, que si en 3 segundos no obtiene ninguna respuesta de esta consulta, siga el script normalmente.

Aclarar que no me refiero al tiempo maximo de consulta de php, si no a el tiempo maximo en el que si no le devuelve una respuesta a esa variable, siga el script, con dicha variable vacia al no haber tenido respuesta.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Tiempo maximo de ejecucion de una consulta

Publicado por kip (877 intervenciones) el 05/04/2017 06:05:45
Hola, puedes tomar una fecha de referencia al iniciar el script y en cada iteracion del loop verificar cuantos segundos de diferencia tiene desde que iniciaste el script, algo asi:

1
2
3
4
5
6
7
8
9
10
11
12
13
$inicio = new DateTime('NOW'); //Fecha inicial
 
while (TRUE) {
    $tiempo_actual = new DateTime('NOW'); //Fecha actual al momento de cada iteracion
    $diferencia = $inicio->diff($tiempo_actual); //Obtengo la diferencia en base a la fecha inicial
    $segs = intval($diferencia->format('%s')); //Obtengo los segundos de esta diferencia
    if($segs === 5) { //Si la diferencia son 5 segs entonces hago un break al loop!
        printf('%d segundos, se hara un break al loop!', $segs);
        break;
    }
}
 
echo 'Continuamos......';


No se si es lo que buscas, nos avisas si lo pruebas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar