Привет, ребята, я делаю инструмент, который будет извлекать номера телефонов из базы данных и делать запрос curl/api для проверки номера и получения его информации, а затем обновлять определенные поля в базе данных на основе из ответа API.Лучший подход для Looped Multi-Curl Request PHP
Поэтому у меня есть таблица под названием phones
, который имеет
->id
->number
->network
->country
Так в моей таблице только id
и number
, который имеет значения, network
и country
является нулевым. Именно по этой причине я буду использовать API, который будет обновлять эти поля в зависимости от числа. Однако есть проблема, поэтому в основном то, что будет происходить, я буду петля на все эти цифрах, как так:
$phone = Phone::all();
foreach ($phone as $key => $value)
{
// Call the API that will get the details in the current number
// and update the details in the table for the current number
/** Some code for API Call **/
//Update Script
$update = Phone::find($value->id);
$update->network = $network;
$update->country = $country;
$update->country_prefix = $country_prefix;
$update->status = $status;
$update->remarks = $remarks;
$update->save();
}
Это будет прекрасно работать и выполнять свою задачу, но проблема в том, что это очень медленно, когда я закольцевать скажу , 50 000 записей, прежде чем он сможет отправить следующий запрос на завиток, он должен дождаться ответа предыдущего права? Вопрос в том, как я могу сделать это 20 запросов на количество циклов? Coz API, который я использую, поддерживает 20 запросов в секунду, поэтому я не хочу его максимизировать.
Я знаю, что моя петля изменится. Мне нужно получить 20 записей за раз, а не повторять одни и те же записи.
Да, что я хочу делать. Но я не знаю с чего начать – jackhammer013
Нет проблем, этот фрагмент поможет вам с нуля, – user5212481
$ phone = Phone :: all(); Еогеасп ($ телефон, как $ ключ => $ значение) { // Вызов API, который будет получать подробную информацию в текущий номер // и обновить данные в таблице для текущего номера /** Некоторые код для API-вызова **/ // Обновление сценария $ update = Phone :: find ($ value-> id); $ update-> network = $ network; $ update-> страна = $ страна; $ update-> country_prefix = $ country_prefix; $ update-> status = $ status; $ update-> примечания = $ замечания; $ update-> save(); } – user5212481