PHP cURL требуется только для отправки и не ждать ответа

Мне нужна конфигурация PHP cURL, чтобы мой скрипт мог отправлять запросы и игнорировать ответы, отправленные API.

curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_POST,count($fields)); curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string); // curl_setopt($ch, CURLOPT_RETURNTRANSFER, false); //curl_setopt($ch, CURLOPT_TIMEOUT_MS, 100); $result = curl_exec($ch); echo $result; curl_close ($ch); 

Я попытался добавить: // curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, false); // curl_setopt ($ ch, CURLOPT_TIMEOUT_MS, 100);

Но он не работает должным образом, и веб-сервер API не получает запросы.

Причина этого заключается в том, что я посылаю большое количество запросов API, поэтому мой скрипт очень медленный, потому что он ждет каждого запроса.

Любая помощь приветствуется.

`

 public function cccc($test=1) { if($test==1) { $url = 'http://examplesite.com/test/cccc/2'; $curl = curl_init(); $post['test'] = 'test'; curl_setopt($curl, CURLOPT_URL, $url); curl_setopt ($curl, CURLOPT_POST, TRUE); curl_setopt ($curl, CURLOPT_POSTFIELDS, $post); curl_setopt($curl, CURLOPT_USERAGENT, 'api'); curl_setopt($curl, CURLOPT_TIMEOUT, 1); curl_setopt($curl, CURLOPT_HEADER, 0); curl_setopt($curl, CURLOPT_RETURNTRANSFER, false); curl_setopt($curl, CURLOPT_FORBID_REUSE, true); curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 1); curl_setopt($curl, CURLOPT_DNS_CACHE_TIMEOUT, 10); curl_setopt($curl, CURLOPT_FRESH_CONNECT, true); $data = curl_exec($curl); echo $data; curl_close($curl); } else { ob_end_clean(); header("Connection: close\r\n"); header("Content-Encoding: none\r\n"); header("Content-Length: 1"); ignore_user_abort(true); sleep(10); $this->db->query('UPDATE new_hook_memory SET new=new+1 WHERE id=1'); }} 

//контрольная работа

`

Если возможно, вы можете запустить wget в фоновом режиме (используя exec )

Немного поздно, но решение этого для любого заинтересованного заключается в том, что для CURLOPT_RETURNTRANSFER необходимо установить значение ИСТИНА, а не false. Таким образом, функция curl_exec возвращает значение немедленно, а не ожидает завершения запроса перед возвратом – т.е. оно действует асинхронно, а не синхронно.

 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

Как вы можете определить, удалось ли выполнить запрос или нет? Для этого вам нужно подождать, по крайней мере, кода состояния с сервера. Если задержка возникает, обратитесь к API-интерфейсу curl для параллельного выполнения нескольких запросов. Вы должны иметь возможность установить функцию обратного вызова записи, чтобы прервать прием возвращаемых данных после возврата кода состояния.