Всем привет. Стоит задача записать в хранилище около 800 записей из массива. Проблема в том, что после внесения около 400 записей начинает выдавать ошибку о большом количестве запросов. Пауза в цикле на 2-5 секунд после каждого 40го запроса не помогает, 10 секунд вешает сервак в ошибку 504.
код:
В связи с этим вопрос: как правильно организовать пакетную запись всего этого дела?
Если делать через callBatch, то надо же как-то преобразовать исходный массив, прежде чем запускать запрос.
код:
Код |
---|
foreach ($arrsity as $sity) { $PROPERTY_VALUES = array( "CityCode" => $sity["CityCode"], "CountryCode" => $sity["CountryCode"], "CountryName" => $sity["CountryName"], ); $addcity=$this->callB24Method($auth, 'entity.item.add', array( 'ENTITY'=>'SDEK_sitys', 'NAME'=> $sity["City"], 'PROPERTY_VALUES' => $PROPERTY_VALUES, ) ); if(isset( $addcity["result"]) && $addcity["result"]>0){ $schet++; if ( ($schet % 40)==0) { sleep(1); echo "пауза ".$schet; } } else { $err++; echo "<pre>"; var_dump($addcity); echo "</pre>"; } } echo "База городов обновлена <br>"; echo "Всего добавлено городов: ".$schet."<br>"; if ($err > 0) { echo "Ошибок : ".$err."<br>"; } |
В связи с этим вопрос: как правильно организовать пакетную запись всего этого дела?
Если делать через callBatch, то надо же как-то преобразовать исходный массив, прежде чем запускать запрос.