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

Php 同时执行多个shell_exec()命令?,php,process,command-line-interface,shell-exec,Php,Process,Command Line Interface,Shell Exec,嗨,我想知道是否有人能给我一个解决方案 我有一个php脚本的多个实例,我想一次运行,我可以使用shell_exec()实现这一点,而不需要等待pid之外的响应。这真是太棒了。但是,当使用下面的方法执行此操作时,它可以很好地执行100次左右的执行,但是我需要它执行大约1000次,并且循环foreach并逐个执行1次需要花费太长的时间 例如: $items = $array(daatabase entries); foreach($items as $i){ $pid = shel

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

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

例如:

 $items = $array(daatabase entries);

   foreach($items as $i){
    $pid = shell_exec("execute the process.php");
   }
现在假设小于100,执行大约需要1秒左右,这是正常的,但是我需要运行这些负载,这将需要10-20秒

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


谢谢

也许是pthreads之类的东西


(我能找到的最新结果)

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

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

您是否希望执行的脚本有响应?不,我不需要结果-我已经得到了pid,您如何得到pid?您的php脚本?$pid=shell_exec(“nohup nice-n 10/usr/local/bin/php-c/opt/cpanel/ea-php71/root/etc/php.ini-f/home/USER/public_html/files/crons/test_process.php>/dev/null&echo$!”)您正在将命令发送到后台,因此迭代1000行需要所有时间,这很奇怪。现在还没有查看pthreads,我听说这是一个选项,虽然我不相信它是PHP的核心,但似乎已经很成熟了。我尝试过的唯一替代方法是调用一个端点,该端点使用短超时的curl执行操作。正是这样: