我制作了这个脚本来测试 PHP 作为后台进程的执行

foreach($tests as $test) {
   exec("php test.php ".$test["id"]);
}

正如 php process background 中所建议的
How to add large number of event notification reminder via Google Calendar API using PHP?php execute a background process

但是该脚本的运行速度并不比在没有添加 test.php 的情况下全部使用一个脚本时快。

我究竟做错了什么?

提前致谢!

最佳答案

exec() 将阻塞,直到您正在执行的进程完成 - 换句话说,您基本上将“test.php”作为子例程运行。您至少需要在命令行参数中添加一个 &,这会将 exec() 进程置于后台:

exec("php test.php {$test['id']} &");

关于php 后台 exec() 函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4646788/

10-12 00:12
查看更多