현재 위치: > 최신 기사 목록> curl_upkeep을 사용하는 방법? curl_multi_add_handle () 후에 curl_upkeep 함수를 올바르게 호출하도록 가르쳐주십시오.

curl_upkeep을 사용하는 방법? curl_multi_add_handle () 후에 curl_upkeep 함수를 올바르게 호출하도록 가르쳐주십시오.

M66 2025-06-23

PHP에서 멀티 스레드 요청에 CURL 라이브러리를 사용하는 경우 Curl_Multi_ADD_HANDLE () 함수는 핵심 단계로 여러 컬 핸들을 CURL Multiplexed Handle에 추가 할 수 있습니다. 그러나 멀티 스레드 요청을 실행할 때 멀티 플렉스 핸들을 올바르게 관리하고 유지 관리 해야하는 상황이 발생할 수 있습니다. 이 경우 curl_upkeep () 함수는 매우 유용합니다. Curl_Multi_ADD_HANDLE ()을 호출 한 후 여러 동시 요청이 계속 활성화되고 적시에 유효하지 않은 요청을 정리할 수 있습니다.

이 기사는 Curl_Multi_ADD_HANDLE () 을 사용한 후 CURL_UPKEEP () 함수를 올바르게 호출하는 방법을 자세히 소개하고 CURL 멀티 스레드 요청의 원활한 실행을 보장합니다.

1. curl_multi_add_handle () 함수는 무엇입니까?

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);

2. curl_upkeep () 의 역할

curl_upkeep () 함수의 기능은 멀티플렉스 된 핸들에서 모든 요청이 활성화되고 더 이상 적시에 필요하지 않은 요청을 관리 할 수 ​​있도록하는 것입니다. 완료되거나 실패한 요청을 정리하여 시스템의 자원을 제 시간에 재활용 할 수 있도록하여 불필요한 메모리 소비를 피할 수 있습니다.

3. curl_multi_add_handle () 후 curl_upkeep ()을 호출하는 방법

다중 컬 핸들에 여러 컬 핸들을 추가 한 후에는 이러한 핸들의 수명주기를 관리하기 위해 Curl_Upkeep ()를 주기적으로 호출해야합니다. 특정 단계는 다음과 같습니다.

  1. 요청을 시작하려면 curl_multi_exec ()을 호출하십시오.

  2. 컬 세션의 활성 상태를 유지하려면 curl_upkeep () 를 사용하십시오.

  3. 모든 요청이 완료되면 완료된 핸들을 제거하십시오.

특정 예는 다음과 같습니다.

 $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);

4. 왜 curl_upkeep ()를 사용합니까?

Curl_Multi_Exec ()를 사용하여 동시 요청을 실행할 때 첫 번째 실행에서 모든 요청을 완료 할 수 있는지 보장 할 수 없습니다. 때로는 일부 요청이 더 오래 걸릴 수 있습니다. Curl_upkeep ()는 이러한 핸들이 불필요한 리소스를 소비하는 것을 방지하기 위해 완성 된 요청 핸들을 주기적으로 정리할 수 있습니다. 또한 Curl_upkeep ()은 바쁜 요청에서도 프로그램을 효율적으로 실행할 수 있도록합니다.

5. 결론

curl_upkeep ()는 php의 여러 동시 요청을 처리하기 위해 curl_multi_add_handle ()을 사용할 때 매우 중요한 도구입니다. 다중 손잡이를 관리하고 적시에 유효하지 않은 요청을 정리하여 요청을 효율적으로 실행하고 자원의 합리적인 활용을 보장합니다. Curl_upkeep ()를 합리적으로 사용하면 PHP에서 동시 요청을보다 안정적이고 신뢰할 수 있습니다.