SOAP Проблемы с загрузкой данных Api Batch - PullRequest
0 голосов
/ 09 февраля 2020

Я извлекаю 160 тыс. Продуктов из веб-сервиса soap и регистрирую его в базе данных. Но он добавляет это очень медленно в базу данных. Memory_limit превышает, и я получаю ошибку тайм-аута шлюза. Я могу вытащить данные из soap между нужными числами. ("startRecord" => 0, "endRecord" => 1000), я говорю, потяните данные от 0 до 1000 здесь. Как я могу быстро добавить это в базу данных, как я могу преодолеть эти проблемы?

Контроллер


public function kitaplar()
    {
        try{ 
            $wsdl_url = "http://xxxxxxxxxxxxx.com/service/ProductService.asmx?WSDL"; 
            $client = new SoapClient($wsdl_url); 
            $params = array("login" => array("appKey" => "xxxxxxxxx-xxxxxxxxxxxxxxxxx-xxxxxxxxxxxxxx", "appPassword" => "xxxxxxxxxxxxxxx"), "startRecord" => 0, "endRecord"  => 160000);
            $result = $client->getAllStockListMask($params);

            foreach ($result->getAllStockListMaskResult->stock as $key) {

                $kitapkontrol = kitapkontrol($key->stockCode);

                if (!$kitapkontrol) {

                    curl_resim_kaydet($key->stockBigImageUrl, "../uploads/urunler/".seo($key->stockName."-".$key->stockCode).".jpg");

                    $yüzde20 = $key->stockSalePrice/100*20;
                    $yüzde10 = $key->stockSalePrice/100*10;
                    $fiyat = $key->stockSalePrice+$yüzde10;
                    $ifiyat = $key->stockSalePrice-$yüzde20;

                    if ($key->stockStatus=="VAR") {
                        $stok = 100000;
                    }else{
                        $stok = 0;
                    }

                    $data = array(
                        "urun_kodu"         => $key->stockCode,
                        "isbn"              => $key->stockBarcode1,
                        "kategori"          => $key->stockGroup2Code, 
                        "altkategori"       => $key->stockGroup3Code, 
                        "adi"               => $key->stockName, 
                        "seo"               => seo($key->stockName), 
                        "resim"             => seo($key->stockName."-".$key->stockCode).".jpg", 
                        "durum"             => 1, 
                        "indirim"           => 1, 
                        "fiyat"             => $fiyat, 
                        "ifiyat"            => $ifiyat,
                        "stok"              => $stok,
                        "aciklama"          => $key->stockDetailInfo,
                        "tarih"             => date('d-m-Y'),
                        "yazar"             => $yazarid,
                        "yayinevi"          => $key->stockMarcaCode,
                        "kagit_cinsi"       => $key->stockImprintType,
                        "yayin_tarihi"      => $key->stockImprintYear,
                        "baski_sayisi"      => $key->stockImprint,
                        "sayfa_sayisi"      => $key->stockImprint,
                        "olcu"              => $key->stockLength."x".$key->stockWidth

                    );
                    $this->api_model->kitaplar($data);
                }
            }

        } catch (SoapFault $e){ 
            print($e); 
        } 
    }

Api_model

    public function kitaplar($data = array())
    {
        $this->db->trans_start();
        $veri = $this->db->insert("urunler", $data);
        $this->db->trans_complete();
        return $veri;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...