PHP의 비동기 컬 요청
PHP에서 컬 포스트 요청을 비동기적으로 실행하면 성능이 향상되고 잠재적인 지연을 방지할 수 있습니다. 다양한 방법을 사용하여 이를 달성하는 방법은 다음과 같습니다.
비동기 cURL 함수 사용
curl_multi_*를 사용하면 여러 cURL 요청을 동시에 실행할 수 있습니다. 다음은 예제 코드입니다.
<code class="php">$curl = curl_init($request); curl_setopt($curl, CURLOPT_URL, $url_onfleet); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_USERPWD, $api_onfleet); curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($curl, CURLOPT_ENCODING, ""); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, '{"destination":{"address":{"unparsed":"'.$pickup_address.'"},"notes":"'.$comments.'"},"recipients":[{"name":"'.$name.'","phone":"+61'.$phone.'","notes":"Number of riders: '.$riders.'"}],"completeBefore":'.$timestamp.',"pickupTask":"yes","autoAssign":{"mode":"distance"}}'); $mh = curl_multi_init(); curl_multi_add_handle($mh,$curl); $active = null; //execute the handles do { $mrc = curl_multi_exec($mh, $active); } while ($mrc == CURLM_CALL_MULTI_PERFORM); while ($active && $mrc == CURLM_OK) { if (curl_multi_select($mh) != -1) { do { $mrc = curl_multi_exec($mh, $active); } while ($mrc == CURLM_CALL_MULTI_PERFORM); } } //close the handles curl_multi_remove_handle($mh, $curl); curl_multi_close($mh);</code>
pThreads 사용
pThreads는 PHP용 스레딩 라이브러리입니다. 비동기 컬 요청에 이를 사용하는 방법은 다음과 같습니다.
<code class="php">class Request1 extends Thread { public function run() { // Execute the first cURL request here } } class Request2 extends Thread { public function run() { // Execute the second cURL request here } } $req1 = new Request1(); $req1->start(); $req2 = new Request2(); $req2->start();</code>
두 방법 모두 컬 요청의 비동기 실행을 허용하여 더 나은 성능과 병렬 작업의 효율적인 처리를 가능하게 합니다.
위 내용은 PHP에서 cURL 요청을 어떻게 비동기식으로 실행할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!