同时执行多个shell_exec()命令?

时间:2017-03-29 08:16:18

标签: php process command-line-interface shell-exec

嗨,我想知道是否有人可以给我一个解决方案..

我有一个php脚本的多个实例我想立即运行,我可以半实现这个使用shell_exec()而不是等待除了pid之外的响应。这非常有效。但是,当使用下面的方法执行此操作时,它可以很好地执行100次左右,但我需要执行大约1000次,并且需要花费太长时间来循环foreach并逐个执行。

示例:

 $items = $array(daatabase entries);

   foreach($items as $i){
    $pid = shell_exec("execute the process.php");
   }

现在假设有<这将需要大约1秒左右的执行,这是好的,但我需要运行这些负载,这将需要10-20秒。

有没有办法批量发送命令而不是一次发送1个命令?

由于

2 个答案:

答案 0 :(得分:0)

或许像pthreads这样的东西?

https://www.sitepoint.com/parallel-programming-pthreads-php-fundamentals/ (我能找到的最新结果)

答案 1 :(得分:0)

您可以在后台执行process.php,而无需等待执行完成。所以它会更快。此外,shell_exec()函数仅返回输出,而不是pid。如果您需要pid,则必须使用exec()功能。

   $items = $array(daatabase entries);
   foreach($items as $i){
      shell_exec("execute the process.php > /dev/null 2>&1");
   }