运行并行 PHP 脚本的最佳方法


Best method for running parallel PHP scripts

我想一次运行 3 个不同的简单脚本,每个脚本都会抓取网站内容并返回一个字符串。哪种 pcntl、pthreads、后台 exec() 方法最合适?我最感兴趣的是低资源消耗。

一般很难

回答。

您要优化哪种资源?

无论如何,这里的第一个示例主要回答了您的问题:http://php.net/manual/en/function.pcntl-fork.php

<?php
for ($i = 1; $i <= 5; ++$i) {
        $pid = pcntl_fork();
        if (!$pid) {
            sleep(1);
            print "In child $i'n";
            exit($i);
        }
    }
    while (pcntl_waitpid(0, $status) != -1) {
        $status = pcntl_wexitstatus($status);
        echo "Child $status completed'n";
    }
?>

因为我发现我的主机不提供扩展,所以执行方式是唯一可以去的。然而,pthreads 似乎是最有效的一种。