【问题标题】:How to optimaze looping , get data from another API with lumen如何优化循环,使用流明从另一个 API 获取数据
【发布时间】:2021-04-12 19:19:19
【问题描述】:

当我使用 guzzle 获取数据成员时加入数据内容如此繁重,samebody 可以告诉我如何解决它吗?

$getNewest=$this->Get(env('TestUrl').'listcast');
 if (!empty($getNewest['DATA'])) {
            foreach ($getNewest['DATA'] as $data) 
            {
                $client = New CLient();
                $reqGet = $client->get(env('MemberUrl').'user-token-member/'.$data['member_id']);
                $resGet = json_decode($reqGet->getBody(),true);
                $array['id']=$data['id'];
                $array['title']=$data['title'];
                $array['member_name'] =$resGet['DATA']['FIRSTNAME']." ".$resGet['DATA']['LASTNAME'];
                $array['avatar'] = $resGet['DATA']['MEMBER_IMAGE'];
                $array['desc'] = $data['desc'];
                $newest[] = $array;
            }
        } else {
            $newest = array();
        }

【问题讨论】:

    标签: laravel lumen


    【解决方案1】:

    我不知道它速度慢的确切原因是什么,但是您应该对代码进行一些修改。

    1. 不要在代码中使用env()。而是在 config 文件夹中定义一个配置文件,例如 connection.php 并在其中设置您的配置,因为配置文件将被 laravel 缓存在您的生产服务器中。您可以通过运行 php artisan config:cache
      来缓存配置 例如 config/connection.php
    <?php
    
    return [
        'test_url'=>env('TestUrl'),
        'member_url'=>env('MemberUrl'),
    ];
    
    1. 不需要在foreach 的每次迭代中创建一个Client 类的新对象。你把它放在循环之外。
    $getNewest=$this->Get(config('connection.test_url').'listcast');
    if (!empty($getNewest['DATA'])) {
        $client = New CLient();
        foreach ($getNewest['DATA'] as $data){
            $reqGet = $client->get(config('connection.member_url').'user-token-member/'.$data['member_id']);
            $resGet = json_decode($reqGet->getBody(),true);
            $array['id']=$data['id'];
            $array['title']=$data['title'];
            $array['member_name'] =$resGet['DATA']['FIRSTNAME']." ".$resGet['DATA']['LASTNAME'];
            $array['avatar'] = $resGet['DATA']['MEMBER_IMAGE'];
            $array['desc'] = $data['desc'];
            $newest[] = $array;
        }
    } else {
        $newest = array();
    }
    

    【讨论】:

    • 谢谢,通过这样的使用,提高了数据的显示速度。 @BABAK
    猜你喜欢
    • 1970-01-01
    • 2011-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多