PHP exec() 導致記憶體使用率居高不下?

PHP exec() 導致記憶體使用率居高不下?

我對在 php 中使用 exec() 指令很陌生。我將它與名為 phantomJS 的腳本一起使用(http://phantomjs.org/)來運行一個創建我的網站頁面的 pdf 的進程。

問題是,當我執行 exec() 時,它通常會在大約 3~5 秒內完成腳本的執行。然而有時加載會永遠持續下去,不會超過 5 分鐘。在這些情況下,我只需刷新頁面(腳本在頁面加載時運行)。執行此操作後,我檢查了 CPanel 中的記憶體使用情況,記憶體使用情況仍然很高,就好像進程仍在運行一樣。

可能是什麼原因造成的?我已經設定了 set_time_limit(60) 來終止任何運行時間過長的進程,但它仍然很高。我已經檢查了其他可能的原因,但我確信它與此執行過程有關。

僅供參考,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;
 }

}

先致謝

相關內容