Foros del Web » Programando para Internet » PHP »

max_execution_time

Estas en el tema de max_execution_time en el foro de PHP en Foros del Web. Estimados, Tengo el siguiente problema, En el php.ini tengo asignado por decir 5 minutos para la ejecución de un script. "max_execution_time". Debo saber cuando esta ...
  #1 (permalink)  
Antiguo 03/11/2011, 20:22
 
Fecha de Ingreso: noviembre-2011
Mensajes: 55
Antigüedad: 13 años
Puntos: 3
max_execution_time

Estimados,

Tengo el siguiente problema,

En el php.ini tengo asignado por decir 5 minutos para la ejecución de un script. "max_execution_time".

Debo saber cuando esta apunto de completarse este tiempo para botar el proceso que este ejecutandose.


Alguna idea de como saber en que momento debo interrumpir la ejecución?

Desde ya se agradece cualquier dato ;)
  #2 (permalink)  
Antiguo 04/11/2011, 06:53
 
Fecha de Ingreso: noviembre-2011
Mensajes: 55
Antigüedad: 13 años
Puntos: 3
Respuesta: max_execution_time

Seria posible con algun contador que avance como reloj?
  #3 (permalink)  
Antiguo 04/11/2011, 09:14
 
Fecha de Ingreso: noviembre-2011
Mensajes: 55
Antigüedad: 13 años
Puntos: 3
Respuesta: max_execution_time

di con esta funcion set_time_limit ( int $seconds )
alguien la sabe usar? no me quedo claro con el manual de php.
  #4 (permalink)  
Antiguo 04/11/2011, 09:35
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: max_execution_time

set_time_limit establece el límite del tiempo en que el script se va a ejecutar, y para hacer lo que quieres, debes de usar register_shutdown_function, para llamar a una función propia que guarde en que tiempo de tu script vas.

Saludos.
  #5 (permalink)  
Antiguo 04/11/2011, 09:43
 
Fecha de Ingreso: noviembre-2011
Mensajes: 55
Antigüedad: 13 años
Puntos: 3
Respuesta: max_execution_time

GatorV gracias por responder,

pero me podrias dar un ejemplo de como implementar esta funcion?

no te entendi esta parte "llamar a una función propia que guarde en que tiempo de tu script vas."
  #6 (permalink)  
Antiguo 04/11/2011, 09:55
 
Fecha de Ingreso: noviembre-2011
Mensajes: 55
Antigüedad: 13 años
Puntos: 3
Respuesta: max_execution_time

Mi duda es como determino el momento en que debo ejecutar la funcion..

avisarle al usuario que su proceso se demoro mas de lo normal, y que se comunique con el adminsitrador.
  #7 (permalink)  
Antiguo 04/11/2011, 10:00
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: max_execution_time

Esa función lo que te permite es registrar una función que se ejecutará una vez alcanzado el tiempo máximo de ejecución (declarado por set_time_limit()).

En el manual puedes ver más información y aqui hay un ejemplo simple:
Código PHP:
Ver original
  1. function cierre()
  2. {
  3.     // Esta es nuestra función de cierre,
  4.     // aquí podemos hacer las últimas operaciones
  5.     // antes de que el script sea completado.
  6.  
  7.     echo 'Script ejecutado con éxito', PHP_EOL;
  8. }
  9.  

Saludos.
  #8 (permalink)  
Antiguo 04/11/2011, 10:06
 
Fecha de Ingreso: noviembre-2011
Mensajes: 55
Antigüedad: 13 años
Puntos: 3
Respuesta: max_execution_time

Y este tipo de funcion se llamar siempre antes de cumplirse de que termine el tiempo definido.

podria ser una funcion general para que cualquier script que se ejecute la llame?

o es por cada archivo que ejecute un script?
  #9 (permalink)  
Antiguo 04/11/2011, 10:09
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: max_execution_time

Se llama una vez que se cumple el tiempo límite (definido por set_time_limit()). Cada que tu ejecutas un script, en cuanto llames a register_shutdown_function se va a ejecutar la función que hayas definido.
  #10 (permalink)  
Antiguo 04/11/2011, 11:50
 
Fecha de Ingreso: noviembre-2011
Mensajes: 55
Antigüedad: 13 años
Puntos: 3
Respuesta: max_execution_time

Gatorv

sabes como puedo valir el tamaño de un archivo (upload) pero que no sea por php.
para advertirle al usuario que el archivo supera el max. permitido. antes de que lo quiera enviar por el formulario.
  #11 (permalink)  
Antiguo 04/11/2011, 12:10
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: max_execution_time

Si no lo quieres hacer con PHP, vas a tener que usar algún applet o control en el cliente, ya que solamente puedes saber el tamaño en PHP hasta que el archivo este en el servidor.

Con javascript no tienes acceso al disco duro, por lo que solo lo puedes hacer con un applet o control ActiveX.

Saludos.
  #12 (permalink)  
Antiguo 15/11/2011, 08:01
 
Fecha de Ingreso: noviembre-2011
Mensajes: 55
Antigüedad: 13 años
Puntos: 3
Respuesta: max_execution_time

Hola GatorV queria consultarte al respecto,

mira resulta que en mi php.ini le asigno 5 minutos al MAX_EXECUTION_TIME y lo mismo al MAX_INPUT_TIME si leo el phpinfo() me aparecen actualizados los datos.
y el upload_max_filesize lo deje en 20

Pero cuando cargo un archivo que pesa 50 se ejecuta por mucho mas de 5 minutos el envio del archivo.... a que se debe eso? imaginaba que despues de los 5 minutos se caeria la aplicacion... pero no es asi.
  #13 (permalink)  
Antiguo 15/11/2011, 09:42
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: max_execution_time

Desconozco al 100% como es que funciona la directiva, pero creo recordar que el proceso de upload, primero pasa por el WebServer, por lo que esa directiva afecta a la entrada de datos desde el WebServer hasta tu script, no desde el cliente a tu script ya que este primero entra por el WebServer.

Ahora estas directivas cambian mucho si PHP esta corriendo bajo CGI o bajo ISAPI, así que mucho depende de como hayas integrado PHP a tu WebServer y el WebServer que estes ejecutando.

Saludos.
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 22:42.