최근 대용량 데이터를 실행할 때 타임아웃이 발생하는 PHP 프로그램이 있어서, set_time_limit() 함수를 사용하여 PHP 페이지의 최대 실행 시간을 설정했습니다.
스크립트 실행이 허용되는 시간(초)을 설정합니다. 이것이 기본값인 경우 스크립트는 치명적인 오류를 반환합니다. 기본 제한은 30초입니다. 또는 php.ini에서 max_execution_time을 정의하여 PHP 페이지의 최대 실행 시간을 설정할 수 있습니다.
호출되면 set_time_limit() 함수는 시간 초과 카운터를 0에서 다시 시작합니다. 즉, 타임아웃이 기본적으로 30초인 경우, 스크립트의 실행 매개변수나 set_time_limit에 25초가 걸리면, 타임아웃을 (20)으로 설정하면 스크립트가 45초 동안 실행된 후 타임아웃됩니다.
set_time_limit(900) 현재 php 스크립트의 최대 실행 시간을 지정하는 함수입니다. 설정 값은 900초이지만 실제 최대 실행 시간 = php.ini의 max_execution_time 값 - 현재 스크립트의 실행 시간 + 설정값.
php.ini에서 max_execution_time=30이고 현재 스크립트가 10초 동안 실행된 경우:
최대 실행 시간=30-10+900=920초.
이러한 수정 후 PHP 스크립트는 200,000개의 레코드를 성공적으로 업데이트했습니다.
PHP 스크립트에 액세스할 때마다 모든 PHP 스크립트가 실행된 후에만 반환 결과를 얻습니다. 지속적으로 실행하기 위해 스크립트가 필요한 경우 작업 목적을 달성하려면 PHP 긴 연결을 사용해야 합니다.
각 PHP 스크립트에는 실행 시간이 제한되어 있으므로 set_time_limit를 통해 스크립트의 실행 시간을 무제한으로 설정한 다음 플러시() 및 ob_flush()를 사용하여 서버 버퍼를 지우고 스크립트를 출력해야 합니다. 언제든지 반환 값.
<?php header("Content-Type: text/plain"); set_time_limit(0); $infoString = "Hello World" . "\n"; while( isset($infoString) ) { echo $infoString; flush(); ob_flush(); sleep(5); } ?>
위 내용은 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.