Переделать Curl запрос на асинхронность (PHP) {мб multi curl}
Организуем запросы на API провайдера в цикле, вот таким образом:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://'.$apiLink.'/v3/'.$d['domain'].'/messages');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
if ($d['proxy'] != NULL) {
curl_setopt($ch, CURLOPT_PROXY, $d['proxy']);
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
}
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_USERPWD, 'api' . ':' . $apiKey);
curl_setopt($ch, CURLOPT_POSTFIELDS, $MailData);
$result = curl_exec($ch);
Далее соответственно, получаем результат выполнения получаем и записываем в базу:
$status = 0;
$answer = 'ok';
$result = json_decode($result, true);
if($result = ..) { $mysqli->query("UPDATE ... и тд }
Что нужно решить:
Проблема в том, что на каждый запрос у нас уходит 0.5 сек, так как тут цикл из 500 кругов, нам нужно чтобы запросы выполнялись раза в 3 быстрей, чтобы это успевалось 500 круглов цикла пройти за 1 минуту. Нужно переделать запросы на multi curl, чтобы не было прерываний и ожиданий ответа от каждого вызова или сделать иной на ваше усмотрения асинхрон, главное не усложнять и главное собирать ответы и писать в базу результат каждого ответа от АПИ, как есть и сейчас.
Пишите только те, кто готов поработать сегодня/сейчас.
Заявки фрилансеров
