> 백엔드 개발 > PHP 튜토리얼 > 조기 요청 종료를 방지하기 위해 PHP에서 Curl 시간 초과를 효과적으로 미세 조정하려면 어떻게 해야 합니까?

조기 요청 종료를 방지하기 위해 PHP에서 Curl 시간 초과를 효과적으로 미세 조정하려면 어떻게 해야 합니까?

DDD
풀어 주다: 2024-12-27 03:20:09
원래의
695명이 탐색했습니다.

How Can I Effectively Fine-Tune Curl Timeouts in PHP to Avoid Premature Request Termination?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿