我有一个脚本,可以从另一个API提取数据。在大约1小时30分钟的时间内,从API检索数据时,脚本花费了太多时间。该脚本的目的是复制评论并将其发送到另一个帐户。该脚本首先收集反馈,然后基于从反馈中获得的订单ID,迭代该反馈数组,然后对其他API执行curl请求,以基于该订单ID获得一些数据。但是,curl请求循环需要太多时间才能返回数据。 反馈约为3000。 如何处理脚本以更快地返回数据?
apply
答案 0 :(得分:0)
这里的问题是,当您在循环中调用curl时,第二个调用需要第一个完成,然后第二个才能开始,这需要很长时间 为了解决这个问题,您可以使用(pclose popen)脚本将它们传递给后台,而在第二个脚本中,您可以管理您的返回数据:
第一个脚本:
<?php
$feedbacks = getFeedbacks();
if(count($feedbacks)>0){
foreach($feedbacks as $feedback){
$getData($feedback->order_id);
}
}
function getData($orderId)
{
$orderId = $orderId;
pclose(popen('sudo /usr/bin/php /home/secondscript.php -o '.$orderId." >/dev/null &", 'r'));
}
第二个脚本:
<?php
$command_line_args= getopt("o:");
$orderId=$command_line_args["o"];
$api = "api address here";
$curl = curl_init($api);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$curl_response = curl_exec($curl);
$json = json_decode($curl_response);
{here u can use the json return ..}