2013-11-15 2 views
1

PHP 응용 프로그램에서 컬을 사용합니다. 그것은 그 모양 (간체) : Persistence Is The Way to Happiness 장에 기록 된대로PHP에서 컬 연결 재사용

$handle = curl_init(); 
curl_exec($handle); 
curl_close($handle); 

,

동일한 호스트에 동일한 쉽게 핸들을 사용하여 후속 요청 다만 이미 열려있는 연결을 사용할 수 있습니다! 이렇게하면 네트워크 영향을 크게 줄일 수 있습니다.

그래서이 코드에 적용됩니까? 연결은 저장되며 curl_init()은 기존 연결을 사용합니까? 그렇다면 저장 기간은 얼마나됩니까?

당신은 컬 인스턴스를 만들 :

답변

2

내가 생각하는 방법을 작동해야 있어요 여기이 나 자신을 테스트하지만하지 않은

$handle = curl_init(); 

그런 다음 당신은 URL과 같은 옵션을 설정을하는 방법 (게시하거나 취득) 및 쿼리 문자열 :

curl_exec($handle); // execute the request 
:

curl_setopt($handle, CURLOPT_URL, "http://stackoverflow.com"); 

요청을 실행

curl_setopt($handle, CURLOPT_URL, "http://stackoverflow.com/test/"); 

다시 요청을 실행 이미 열려있는 연결을 재사용 할 수 있어야한다 : 예를 들어이 URL을 변경하기위한 , 당신의 옵션을 변경

curl_exec($handle); 

당신이 할 수와 여러 번 가능하다면 연결을 재사용 할 것입니다.

마지막 연결을 닫고이 완료되면 컬 인스턴스를 삭제합니다

요청 수백만의 내 PHP 5.6.14는 curl_exec에 동결 며칠 동안 그런 식으로의 확산을 발행 한 후
curl_close($handle); 
+0

(로그에 의해 확인 및 dbg 백 트레이스). 연결 재사용 때문인지 확실하지 않습니다. – NeverEndingQueue