Sono abbastanza nuovo nell'usare il comando exec () in php. Lo sto usando insieme a questo script chiamato phantomJS ( http://phantomjs.org/ ) per eseguire un processo che crea un pdf delle pagine del mio sito Web.
Il problema è che quando eseguo exec (), di solito termina l'esecuzione dello script in circa 3 ~ 5 secondi. Tuttavia a volte il caricamento potrebbe continuare all'infinito, non terminando per più di 5 minuti. In questi casi aggiorno solo la pagina (lo script viene eseguito al caricamento della pagina). Dopo aver fatto ciò, controllo l'utilizzo della memoria in CPanel e l'utilizzo della memoria rimane elevato come se il processo fosse ancora in esecuzione.
Che cosa potrebbe causare questo? Ho già impostato un set_time_limit (60) per eliminare qualsiasi processo in esecuzione troppo lungo, ma rimane alto. Ho verificato altre probabili cause ma sono sicuro che abbia a che fare con questo processo exec.
Cordiali saluti, il exec () innesca alcune query 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;
}
}
Grazie in anticipo