Como modificar el tiempo máximo de ejecución de un proceso

Hola que tal?

Les comento rapidamente, tengo desarrollado un proceso de migración de datos, que lee información a partir de un archivo CSV que actualmente contiene más de 10 mil registros. Este archivo es generado automaticamente por otro sistema, quisiera saber si es que hay alguna forma de aumentar el tiempo de espera de ejecución solamente cuando se está por ejecutar este proceso de migración?

Estoy utilizando la versión más reciente de symfony.

composer.json:

"symfony/symfony": "2.7.*"

Desde ya, muchas gracias!

Respuestas

#1

Si te refieres a procesos ejecutados mediante el componente Process de Symfony, entonces tienes que utilizar el método setTimeout():

use Symfony\Component\Process\Process;
 
$process = new Process('...');
$process->setTimeout(3600);  // tiempo de espera en segundos
$process->run();

Si el proceso que ejecutas no produce ninguna salida por pantalla mientras está ejecutándose, entonces tienes que configurar también el idle timeout:

use Symfony\Component\Process\Process;
 
$process = new Process('...');
$process->setTimeout(3600);  // tiempo de espera en segundos
$process->setIdleTimeout(3600);  // tiempo de espera en segundos
$process->run();
#2

Hola javier, gracias por responder, no la verdad no estoy usando el componente Process de Symfony.

Lo que estoy haciendo es:

Tengo una pantalla que permite seleccionar archivos CSV para que éstos sean importados dentro del sistema, cuando se selecciona un archivo válido, se ejecutan varios métodos en el controller, entre los cuales se realizan validaciones de los registros a importar, también se genera un log del proceso de importación y por último se importan los registros, para todo ésto trabajo con una transacción para que si hay un error que no se controlo, no importe nada.

Este proceso ya lo probé con un archivo CSV de 1000 registros y funciona muy bien, pero hay archivos que tienen 10 mil registros que son generados por otro sistema, y la aplicación muere, es decir se corta y me sale una pantalla que dice:

Error del servidor
 
500

Analizando un poco más a fondo doy con que al parecer el erro no es de symfony sino del servidor apache: Encontré la siguiente linea de error en error.log de apache server.

"GET /app_dev.php/Administracion/importaciones/procesar HTTP/1.1" 500 -

Alguna idea de como puedo solucionarlo ?

Muchas gracias.

#3

Hoy por fin pude encontrar la solución a esto, la cual fue modificar el timeOut del archivo:

httpd-default.conf

que se encuentra en (windows):

C:\xampp\apache\conf\extra