Как при парсинге на php сохранять каждую итерацию цикла в файл и делать небольшую паузу?
Есть скрипт, который по api получает информацию, когда информации мало, все хорошо отрабатывает. Но, когда объем большой, скрипт зависает из за нехватки времени .... Поэтому нужно как то разделить работу скрипта, сохранив каждую итерацию в файл и наверное сделать небольшую паузу, или как то прервать скрипт и запустить его. Не знаю как правильно сделать, небольшой опыт в данной теме...( Буду признателен помощи
public function getM(){
$scandir = scandir("../components/id/", 1);
$id = $this->getId($scandir[0]);
$connect = curlParser::app()
->set(CURLOPT_REFERER, $this->referrer)
->set(CURLOPT_USERAGENT, $this->header);
$res = [];
foreach($id as $data){
$res[] = $connect->request("https://сайт/$data");
}
return $res;
}
public function getId($scandir){
$lines = file("../components/id/$scandir");
return array_map(function($line){
$log = json_decode(rtrim($line), true);
return $log;
}, $lines);
}
Ответы (1 шт):
Автор решения: Винсентэ Пуххини
→ Ссылка
Без кода и ошибки тяжело что-то предположить, но тем не менее:
- Попробуйте оптимизировать ваш скрипт, возможно где-то память утекает;
- Отправляйте запросы пачками (array_chunk);
- Установите время выполнения скрипта (set_time_limit), возможно отваливается именно поэтому;
P.S. а вообще возьмите за привычку прикреплять к вопросу, как минимум, фрагмент кода и ошибку, если такая имеется. В разы ускорит решение вашей же проблемы.