Массовое обновление продуктов Magento 2 происходит медленнее, когда я увеличиваю продукты - PullRequest
0 голосов
/ 29 апреля 2020

Я сделал процедуру обновления стокового. Если я обновляю 100 продуктов, он тратит 5 секунд. Если я обновляю 500 продуктов, он тратит 60 секунд. Если я обновляю 1000 продуктов, он тратит 5 минут 45 минут c вместо 2 минут. Почему вместо того, чтобы тратить меньше времени, нужно больше времени, чтобы сделать процедуру? Это код

foreach($array_da_aggiornare as $sku => $quantita)
 {
     $id_voyager = $VoygerMagentoSKU_r[$sku];
 //   print($sku." $id_voyager ".$quantita." <br>");

   //inizializzazione della variabile che mi permetterà di memorizzare il valore della struttura dell'inventario
  $stockRegistry=null;
  //inizializzazione della variabile che mi permetterà di memorizzare la struttura dell'inventario
  $inventario_prodotto=null;
  //inizializzazione della variabile che mi permetterà di memorizzare il valore dell'inventario
  $inventario=null;
  //carico la struttura dell'inventario
  $stockRegistry=$objectManager->get('\Magento\CatalogInventory\Api\StockRegistryInterface');
  //carico l'inventario del prodotto

  $stockItem = $stockRegistry->getStockItemBySku($sku);


  //richiamo la funzione dell'inventario per memorizzare il valore
  $inventario=$scambio->valoriInventario($quantita,$inventario);
  //setto il valore della quantità

  $stockItem->setQty($inventario['qty']);
  $stockItem->setManageStock ($inventario['manage_stock']);
  //setto il valore della gestione dello stock

  //setto se il prodotto è in stock

  $stockItem->setIsInStock ($inventario['is_in_stock']);
  //setto il valore della configurazione del backorders

  $stockItem->setUseConfigBackorders ($inventario['use_config_backorders']);
  //setto il valore di backorders

  $stockItem->setBackorders ($inventario['backorders']);
  //salvo l'inventario
  $stockRegistry->updateStockItemBySku($sku, $stockItem);



  $data_search_stock['id_Prodotti']=$id_voyager;
  $data_stock['aggiornato']=1;
  $scambio->AggiornaStock($data_search_stock, $data_stock);


 $contatore++; 
     if($contatore>$stop)
 {
     break;
 }

 }
...