Я новичок в использовании команды exec() в php. Я использую ее вместе с этим скриптом phantomJS (http://phantomjs.org/) для запуска процесса, который создает PDF-файл страниц моего веб-сайта.
Проблема в том, что когда я запускаю exec(), он обычно завершает выполнение скрипта примерно через 3~5 секунд. Однако иногда загрузка длилась вечно, не завершаясь более 5 минут. В таких случаях я просто обновляю страницу (скрипт запускается при загрузке страницы). После этого я проверяю использование памяти в CPanel, и использование памяти остается высоким, как будто процесс все еще выполняется.
Что может быть причиной этого? Я уже установил set_time_limit(60), чтобы убить все слишком долго работающие процессы, но он просто остается высоким. Я проверил другие возможные причины, но я уверен, что это связано с этим процессом exec.
К вашему сведению, exec() запускает некоторые запросы 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;
}
}
заранее спасибо