PHP에서 멀티 스레드 요청에 CURL 라이브러리를 사용하는 경우 Curl_Multi_ADD_HANDLE () 함수는 핵심 단계로 여러 컬 핸들을 CURL Multiplexed Handle에 추가 할 수 있습니다. 그러나 멀티 스레드 요청을 실행할 때 멀티 플렉스 핸들을 올바르게 관리하고 유지 관리 해야하는 상황이 발생할 수 있습니다. 이 경우 curl_upkeep () 함수는 매우 유용합니다. Curl_Multi_ADD_HANDLE ()을 호출 한 후 여러 동시 요청이 계속 활성화되고 적시에 유효하지 않은 요청을 정리할 수 있습니다.
이 기사는 Curl_Multi_ADD_HANDLE () 을 사용한 후 CURL_UPKEEP () 함수를 올바르게 호출하는 방법을 자세히 소개하고 CURL 멀티 스레드 요청의 원활한 실행을 보장합니다.
curl_multi_add_handle () 함수는 PHP의 함수입니다. 이를 통해 각 요청에 대해 새 컬 세션을 별도로 만들 필요없이 여러 HTTP 요청을 동시에 동시에 만들 수 있습니다. 이 함수를 호출 한 후 Curl_Multi_Exec ()을 통해 실행하고 모든 요청이 완료 될 때까지 기다릴 수 있습니다.
예를 들어, 다음은 간단한 멀티 스레드 컬 요청의 예입니다.
$mh = curl_multi_init(); // 다중 핸들을 초기화하십시오
// 다중 생성cURL핸들
$ch1 = curl_init('http://m66.net/api/data1');
$ch2 = curl_init('http://m66.net/api/data2');
$ch3 = curl_init('http://m66.net/api/data3');
// 将핸들添加到多路复用핸들中
curl_multi_add_handle($mh, $ch1);
curl_multi_add_handle($mh, $ch2);
curl_multi_add_handle($mh, $ch3);
curl_upkeep () 함수의 기능은 멀티플렉스 된 핸들에서 모든 요청이 활성화되고 더 이상 적시에 필요하지 않은 요청을 관리 할 수 있도록하는 것입니다. 완료되거나 실패한 요청을 정리하여 시스템의 자원을 제 시간에 재활용 할 수 있도록하여 불필요한 메모리 소비를 피할 수 있습니다.
다중 컬 핸들에 여러 컬 핸들을 추가 한 후에는 이러한 핸들의 수명주기를 관리하기 위해 Curl_Upkeep ()를 주기적으로 호출해야합니다. 특정 단계는 다음과 같습니다.
요청을 시작하려면 curl_multi_exec ()을 호출하십시오.
컬 세션의 활성 상태를 유지하려면 curl_upkeep () 를 사용하십시오.
모든 요청이 완료되면 완료된 핸들을 제거하십시오.
특정 예는 다음과 같습니다.
$mh = curl_multi_init(); // 初始化多路复用핸들
// 다중 생성cURL핸들
$ch1 = curl_init('http://m66.net/api/data1');
$ch2 = curl_init('http://m66.net/api/data2');
$ch3 = curl_init('http://m66.net/api/data3');
// 将핸들添加到多路复用핸들中
curl_multi_add_handle($mh, $ch1);
curl_multi_add_handle($mh, $ch2);
curl_multi_add_handle($mh, $ch3);
// 요청을 실행하십시오
$running = null;
do {
curl_multi_exec($mh, $running); // 요청을 실행하십시오
curl_upkeep($mh); // 维护多路复用핸들
} while ($running);
// 각 요청의 결과를 얻으십시오
$response1 = curl_multi_getcontent($ch1);
$response2 = curl_multi_getcontent($ch2);
$response3 = curl_multi_getcontent($ch3);
// 关闭핸들
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_multi_remove_handle($mh, $ch3);
// 关闭多路复用핸들
curl_multi_close($mh);
Curl_Multi_Exec ()를 사용하여 동시 요청을 실행할 때 첫 번째 실행에서 모든 요청을 완료 할 수 있는지 보장 할 수 없습니다. 때로는 일부 요청이 더 오래 걸릴 수 있습니다. Curl_upkeep ()는 이러한 핸들이 불필요한 리소스를 소비하는 것을 방지하기 위해 완성 된 요청 핸들을 주기적으로 정리할 수 있습니다. 또한 Curl_upkeep ()은 바쁜 요청에서도 프로그램을 효율적으로 실행할 수 있도록합니다.
curl_upkeep ()는 php의 여러 동시 요청을 처리하기 위해 curl_multi_add_handle ()을 사용할 때 매우 중요한 도구입니다. 다중 손잡이를 관리하고 적시에 유효하지 않은 요청을 정리하여 요청을 효율적으로 실행하고 자원의 합리적인 활용을 보장합니다. Curl_upkeep ()를 합리적으로 사용하면 PHP에서 동시 요청을보다 안정적이고 신뢰할 수 있습니다.