Php 执行时运行并行脚本

Php 执行时运行并行脚本,php,curl,exec,Php,Curl,Exec,我试图弄清楚如何在同一台服务器上并行执行脚本。现在我正在使用cUrl,但我不确定这是最好或最聪明的方法。我希望,当我的主php脚本运行时,能够使用来自主脚本的数据执行另一个脚本,但主脚本不会等待另一个脚本,就像我包含了它一样。我被禁止使用javascript或jQuery来运行一些ajax,所以我想到的是cUrl解决方案。。。但是,当两个脚本位于同一服务器上时,这是正确的方法吗 下面是我的卷发示例: $data = array("username" => "$get_username"

我试图弄清楚如何在同一台服务器上并行执行脚本。现在我正在使用cUrl,但我不确定这是最好或最聪明的方法。我希望,当我的主php脚本运行时,能够使用来自主脚本的数据执行另一个脚本,但主脚本不会等待另一个脚本,就像我包含了它一样。我被禁止使用javascript或jQuery来运行一些ajax,所以我想到的是cUrl解决方案。。。但是,当两个脚本位于同一服务器上时,这是正确的方法吗

下面是我的卷发示例:

$data = array("username" => "$get_username"
             ,"password" => "$md5_pass"
             ,"sqlId" => (int)$userid
             ,"appversion" => (int)$get_version
             ,"proversion" => (int)0
             );

$url = "http://myserver.com/secondscript.php";

$ch = curl_init( $url );
# Setup request to send json via POST.
$payload = json_encode( array("action" => "newUser", "player" => $userid, "json" => $data ));
curl_setopt( $ch, CURLOPT_POSTFIELDS, $payload );
curl_setopt( $ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
# Return response instead of printing.
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
# Send request.
$result = curl_exec($ch);
curl_close($ch); 
希望在这件事上得到帮助或/和指导


提前感谢:-

我遇到了类似的挑战。我做了一个小php演示来展示UNIX系统Ubuntu和PHP5.3.2上的真正并行处理

使用真正的UNIX并行进程 极限平行化 在系统级别限制执行时间 使用proc_*php命令proc_open、proc_terminate、。。。 这是我的游乐场,展示了所有的东西:

演示开始定义要执行的PHP脚本:

$manager = new ProcessManager();
$manager->addScript("doit.php 1", 5);
$manager->addScript("doit.php 2", 10);
$manager->addScript("doit.php 3", 35);
$manager->exec();

也许您可以使用部分或一些想法来并行执行脚本。

如果是本地脚本,您也可以使用shell_exec作为后台进程来运行它,并将&参数附加到命令中。使用curl时,将CURLOPT_TIMEOUT设置为一个非常低的值可以防止脚本等待响应时间过长,因为它会查看shell_exec,但对此没有太多经验。对于服务器负载,shell_exec方法比curl方法更好吗?或者是相同的?理论上,直接执行它应该更快,因为curl必须进行域查找。相关:谢谢。。。顺便问一下,是否可以通过shell_exec发送数据/json?是的,作为命令行参数读取