Soy bastante nuevo en el uso del comando exec() en php. Lo estoy usando junto con este script llamado phantomJS (http://phantomjs.org/) para ejecutar un proceso que crea un pdf de las páginas de mi sitio web.
El problema es que cuando ejecuto exec(), normalmente termina de ejecutar el script en aproximadamente 3 a 5 segundos. Sin embargo, a veces la carga continuaba eternamente y no finalizaba durante más de 5 minutos. En estos casos, simplemente actualizo la página (el script se ejecuta al cargar la página). Después de hacer esto, compruebo mi uso de memoria en CPanel y el uso de memoria se mantiene alto como si el proceso aún estuviera ejecutándose.
¿Qué podría estar causando esto? Ya configuré un set_time_limit(60) para eliminar cualquier proceso en ejecución demasiado largo, pero se mantiene alto. He comprobado otras causas probables pero estoy seguro de que tiene que ver con este proceso ejecutivo.
Para su información, exec() activa algunas consultas de MySQL.
class Challenge_mealplanner_print extends Challenge_mealplanner {
private function generate_personal_details_string($this_page_round_number, $week_number){
return get_current_user_id().'-'.$this_page_round_number.'-'.$week_number;
}
function generate_personal_mealplanner_pdf($this_page_round_number, $week_number){
$phantomjs_loc = escapeshellarg(realpath('').'/path/to/some/script');
$mealplanner_gen_script_loc = escapeshellarg(realpath('').'/path/to/some/script');
$mealplanner_print_page_uri = escapeshellarg('/path/to/some/script'.$this->generate_personal_details_string($this_page_round_number, $week_number));
$pdf_file_name = escapeshellarg('Mealplan-'.$this_page_round_number.'-'.$week_number.'.pdf');
unset($this_page_round_number, $week_number);
$result = exec( $phantomjs_loc.' '.$mealplanner_gen_script_loc.' '.$mealplanner_print_page_uri.' '.$pdf_file_name.' A4 2>&1');
return $result;
}
}
gracias de antemano