Есть около 2 тысяч урлов, куда нужно сходить и забрать данные, синхронно это занимает около 27 минут.
Хочу переписать на асинхронный метод, чтобы сократить время получения данных, но не совсем понимаю, как где мне, собственно, получать данные. Причем, мне необходимо сделать так, чтобы вновь полученные данные четко соответствовали определенному ключу в массиве. Пока что очень смутно видится реализация.
Подтолкните, пожалуйста, в нужном направлении.
for($counter = 0; $counter < count($app_objects); $counter++){
$link = 'example.com';
$process = curl_init($link);
curl_setopt($process, CURLOPT_HTTPHEADER, array('Content-Type: application/json', false));
curl_setopt($process, CURLOPT_RETURNTRANSFER , 1);
$resources[$counter] = $process;
}
$multi_curl = curl_multi_init();
foreach ($resources as $resource){
curl_multi_add_handle($multi_curl,$resource);
}
$active = false;
do {
$mrc = curl_multi_exec($multi_curl, $active);
} while ($active > 0);
while ($active && $mrc == CURLM_OK) {
if (curl_multi_select($multi_curl) != -1) {
do {
$mrc = curl_multi_exec($multi_curl, $active);
var_dump($mrc);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
}
}