我试图弄清楚如何在同一台服务器上运行脚本的并行执行。因为现在我正在使用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);
希望在这件事上寻求帮助或/和指导。
提前致谢: - )
答案 0 :(得分:0)
我遇到了类似的挑战。我做了一个小的php演示,在UNIX系统上显示真正的并行处理(Ubuntu和PHP 5.3.2)......
这是我的游乐场,展示了所有内容:Github-Repo: PHP-Process-Control
演示开始定义要执行的PHP脚本:
$manager = new ProcessManager();
$manager->addScript("doit.php 1", 5);
$manager->addScript("doit.php 2", 10);
$manager->addScript("doit.php 3", 35);
$manager->exec();
也许你可以使用部分或一些想法来并行执行你的脚本。