Как быстро загрузить данные из Nova Postha Api в свою базу данных (30 000 записей)? [закрыто]Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как быстро загрузить данные из Nova Postha Api в свою базу данных (30 000 записей)? [закрыто]

Сообщение Anonymous »

Код: Выделить всё

public function updateWarehouses()
{
$settlements = NovaPoshtaSettlement::all();

foreach ($settlements as $settlement) {
$page = 1;
$limit = 1500;

do {
$response = Http::timeout(10000)->post('https://api.novaposhta.ua/v2.0/json/', [
'apiKey' => config('services.novaposhta.api_key'),
'modelName' => 'AddressGeneral',
'calledMethod' => 'getWarehouses',
'methodProperties' => [
'SettlementRef' => $settlement->ref,
'Page' => $page,
'Limit' => $limit,
],
]);

if ($response->successful()) {
$warehouses = $response->json()['data'];

foreach ($warehouses as $warehouse) {
NovaPoshtaWarehouse::updateOrCreate(
[
'ref' => $warehouse['Ref'],
],
[
'settlement_id' => $settlement->id,
'description' => $warehouse['Description'],
'short_address' => $warehouse['ShortAddress'],
'type_of_warehouse' => $warehouse['TypeOfWarehouse'],
'number' => $warehouse['Number'],
]
);
}

if (count($warehouses) < $limit) {
break;
}
}

$page++;
} while (true);
}
}

NovaPoshtaWarehouse::upsert($warehousesData, ['ref'], ['settlement_id', 'description', 'short_address', 'type_of_warehouse', 'number', 'updated_at']);
Но это плохо.


Подробнее здесь: https://stackoverflow.com/questions/787 ... 0-000-reco
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»