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;
 }

}

提前致谢

相关内容