繁体   English   中英

PHP脚本花费太多时间

[英]PHP script taking too much time

我有一个脚本,可以从另一个API提取数据。 在大约1小时30分钟的时间内,从API检索数据时,脚本花费了太多时间。 该脚本的目的是复制评论并将其发送到另一个帐户。 该脚本首先收集反馈,然后基于从反馈​​中获得的订单ID,迭代该反馈数组,然后对其他API执行curl请求,以基于该订单ID获得一些数据。 但是,curl请求循环需要太多时间才能返回数据。 反馈约为3000。 如何处理脚本以更快地返回数据?

$feedbacks = getFeedbacks();

        if(count($feedbacks)>0){
            foreach($feedbacks as $feedback){
                $getData($feedback->order_id);
            }
        }
function getData($orderId)
{
    $orderId = $orderId;

        $api = "api address here";


    $curl = curl_init($api);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    $curl_response = curl_exec($curl);
    $json = json_decode($curl_response);

}

这里的问题是,当您在循环中调用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 ..}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM