PHP에서 Curl 시간 제한 미세 조정
PHP 프로그래밍 영역에서 데이터베이스 응답이 느려지면 실망스러울 수 있습니다. 대규모 데이터 세트를 처리할 때 이러한 느린 현상은 더욱 두드러집니다. 이 문제를 해결하기 위해 개발자는 시간 초과가 연장된 컬 요청에 의존하는 경우가 많습니다.
다음 코드 조각을 고려하십시오.
$ch = curl_init(); $headers["Content-Length"] = strlen($postString); $headers["User-Agent"] = "Curl/1.0"; curl_setopt($ch, CURLOPT_URL, $requestUrl); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_USERPWD, 'admin:'); curl_setopt($ch,CURLOPT_TIMEOUT,1000); $response = curl_exec($ch); curl_close($ch);
지정된 시간 초과에도 불구하고 컬 요청이 조기에 종료되면 문제가 발생합니다. . 이러한 동작은 접근 방식에 결함이 있는지에 대한 의문을 제기합니다.
답은 컬에서 사용할 수 있는 미묘한 설정을 이해하는 데 있습니다. CURLOPT_CONNECTTIMEOUT 매개변수는 연결 설정에 허용되는 기간을 결정하고 CURLOPT_TIMEOUT은 컬 기능의 최대 실행 시간을 설정합니다. 이 경우 문제는 이러한 설정 간의 불일치로 인해 발생할 수 있습니다.
문제를 해결하려면 다음과 같이 코드를 조정하세요.
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 0); curl_setopt($ch, CURLOPT_TIMEOUT, 400); //timeout in seconds
CURLOPT_CONNECTTIMEOUT을 0(무한 대기를 나타냄)으로 설정합니다. ), 연결이 중단 없이 진행되도록 허용합니다. 동시에 CURLOPT_TIMEOUT은 400초로 설정되어 요청이 완료되는 데 충분한 시간을 제공합니다.
PHP 스크립트 실행 시간을 연장하는 것도 중요합니다.
set_time_limit(0);// to infinity for example
이렇게 하면 PHP 스크립트가 컬 요청이 해당 과정을 실행할 수 있도록 조기에 종료되지 않습니다.
위 내용은 조기 요청 종료를 방지하기 위해 PHP에서 Curl 시간 초과를 효과적으로 미세 조정하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!