PHP의 비동기 컬 요청
PHP에서는 여러 컬 요청을 동시에 실행하는 것이 어려울 수 있습니다. 이 기사에서는 내장 함수와 외부 라이브러리를 사용하여 비동기 실행을 달성하기 위한 다양한 접근 방식을 살펴보겠습니다.
cURL 멀티스레딩
PHP의 cur_multi_* 함수를 사용하면 여러 cURL 요청의 비동기 실행을 위해. 예는 다음과 같습니다.
<code class="php">curl_multi_init(); $mh = curl_multi_init(); $ch1 = curl_init(); curl_setopt($ch1, CURLOPT_URL, 'http://example.com/endpoint'); curl_multi_add_handle($mh, $ch1); $ch2 = curl_init(); curl_setopt($ch2, CURLOPT_URL, 'http://example.com/endpoint2'); curl_multi_add_handle($mh, $ch2); $active = null; 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); } } curl_multi_remove_handle($mh, $ch1); curl_multi_remove_handle($mh, $ch2); curl_multi_close($mh);</code>
pthreads
pthreads 라이브러리는 PHP에서 다중 스레드 프로그래밍을 허용합니다. pthread를 사용하면 다음과 같이 비동기식 컬 요청을 달성할 수 있습니다.
<code class="php">class RequestThread extends Thread { public function run() { $ch = curl_init(); // ... set cURL options here curl_exec($ch); curl_close($ch); } } $thread = new RequestThread(); $thread->start();</code>
라이브러리를 사용한 병렬 실행
PHP에서 병렬 실행을 위해 특별히 설계된 라이브러리도 있습니다. 병렬 기능 및 병렬 요청으로. 다음은 병렬 요청 라이브러리를 사용하는 예입니다.
<code class="php">use Parallel\{Task, Runtime}; $runtime = new Runtime; $tasks = [ new Task(function () { // ... cURL request 1 }), new Task(function () { // ... cURL request 2 }), ]; $runtime->run($tasks);</code>
고려 사항
비동기 요청을 실행할 때 서버의 리소스 제한과 잠재적인 병목 현상을 고려하는 것이 중요합니다. 실행 중 발생할 수 있는 오류와 예외를 처리하는 것도 중요합니다.
위 내용은 PHP에서 비동기 cURL 요청을 달성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!