从PHP启动并发的一次性Heroku测功机

时间:2018-09-07 19:11:16

标签: php heroku

我正在从命令行运行一个(分离的)PHP脚本,该命令行本身使用shell_exec()启动其他PHP脚本。我曾预计这些脚本几乎都会立即启动,但是相反,它似乎正在等待一个脚本完成,然后代码才能继续执行下一个脚本。

这实际上是我正在运行的。如何允许我的脚本继续通过foreach循环而不等待每个shell_exec()终止?

foreach ($rows as $row) {
    $output = shell_exec("php path/to/file.php $estab_code") ;
}

真的,我的预期结果是,每个shell_exec()应该触发一次新的一次性Heroku测功机,并且所有这些同时运行。但是,这似乎没有发生:执行的脚本似乎是从原始dyno运行的。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

shell_exec等待命令返回某些内容。为了使某些事情立即发生并且为空,您可以在每个命令上添加以下内容:

> /dev/null 2>/dev/null &

类似这样的东西:

foreach ($rows as $row) {
    $output = shell_exec("php path/to/file.php $estab_code > /dev/null 2>/dev/null &");
}