Foros del Web » Programando para Internet » PHP »

Ejecutar un PHP en Background

Estas en el tema de Ejecutar un PHP en Background en el foro de PHP en Foros del Web. Hola a todos, tengo una situación medio complicada, necesito hacer un script que ejecute un proceso que dura por lo menos 10 horas, este proceso ...
  #1 (permalink)  
Antiguo 04/09/2012, 18:34
 
Fecha de Ingreso: abril-2008
Mensajes: 88
Antigüedad: 16 años
Puntos: 5
Pregunta Ejecutar un PHP en Background

Hola a todos, tengo una situación medio complicada, necesito hacer un script que ejecute un proceso que dura por lo menos 10 horas, este proceso en principio debe ejecutarse en el Background es decir, sin necesidad que el usuario tenga el navegador o incluso la computadora local encendida.

principalmente use la funcion exec(), para mandar a mi servidor (Linux Centos 6) el comando de ejecución al script PHP a traces de pcli, mas o menos quedo asi


Código PHP:
exec("php ruta/al/archivo/php.php"); 
y en este archivo, que es el que contiene el proceso de 10 horas... (no puede ser menos por el tipo de proceso), inocia:

Código PHP:
set_time_limit(0); //esto es segun entiendo para que el archivo no tenga tiempo limite de ejecución
ignore_user_abort(true); //para que el script se ejecute incluso sin necesidad de interacción con el navegador del usuario.
require_once(misFuncionesDeSeguridadYValidacion.php);

proceso... proceso... proceso... bucles... procesos... (todos funcionan biene interactuan con la base de datos bien)...

fin del procesocambio estados en la base de datos y finalizo el archivo 



situación... el archivo si lo ejecuto de esta manera, me da un maximo me vida de ejecución de 15 min, pero si lo ejecuto desde la consola del linux o via SSH entonces si dura lo que tiene que durar.

alguien tiene alguna idea de como puedo arreglar esto o de que otra manera podria hacerlo.


Cualquier aporte es bienvenido!
  #2 (permalink)  
Antiguo 04/09/2012, 20:53
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 20 años, 8 meses
Puntos: 105
Respuesta: Ejecutar un PHP en Background

Holas,

En linea de comandos el valor por defecto es 0:

http://www.php.net/manual/es/info.co...execution-time

Podrias cambiarlo con ini_set() al inicio de tu script:

Código PHP:
Ver original
  1. ini_set('max_execution_time',0);

Saludos
__________________
.: Gildus :.
  #3 (permalink)  
Antiguo 05/09/2012, 00:15
 
Fecha de Ingreso: abril-2008
Mensajes: 88
Antigüedad: 16 años
Puntos: 5
Respuesta: Ejecutar un PHP en Background

Gildus, gracias por tu respuesta ya coloque eso en 72000 para que dure hasta 20 horas la ejecución... voy a probar con 0 y te cuento si funciona...

Algo que tambien me pregunto es:
El script php pertenece al usuario web8 (ejemplo) y lo ejecuta ese usuario desde la web... (es decir desde el exec ....) pero desde la terminal me logeo como root, ¿tendra que ver eso?

gracias
  #4 (permalink)  
Antiguo 05/09/2012, 07:44
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 20 años, 8 meses
Puntos: 105
Respuesta: Ejecutar un PHP en Background

Si, si te distes cuenta en el link menciona lo mismo, en consola es distinto que en web.

Saludos
__________________
.: Gildus :.

Etiquetas: cli, ejecucion, fondo
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

SíEste tema le ha gustado a 1 personas




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