programing

스크립트 실행을 무제한으로 설정

muds 2023. 10. 3. 11:39
반응형

스크립트 실행을 무제한으로 설정

스크립트를 localhost(xampp)에 실행해야 합니다. 이 스크립트는 14400개의 레코드를 생성하고 데이터베이스에 추가합니다.max_execution_time = 50000000000, 0으로 설정해서 무제한으로 할 수 있는지, -1로 설정해서요.하지만 이전에 이 max_execution_time을 50000000000으로 사용해봤는데 특정 시점에서 멈췄습니다. 실행 시간을 제한할 수 있는 다른 것이 무엇인지 모르겠습니다. 이것을 여러 번 실행하고 다시 기다리는 것과 실패하는 것에 지쳤습니다. 이 스크립트를 다시 실행하기 전에 그리고 이번에는 작업을 완료하려면 무엇을 변경해야 합니까?

0으로 설정하셔야 합니다.0은 스크립트가 영원히 실행될 수 있음을 의미합니다.스크립트를 시작할 때 다음을 추가합니다.

ini_set('max_execution_time', 0);

의 PHP 문서를 참조합니다.

참고:

set_time_limit(0);

같은 효과가 있을 겁니다

PHP 시간 초과 때문이 아니라 스크립트에 액세스하기 위해 사용 중인 브라우저의 시간 초과 때문에 스크립트가 중지될 수 있습니다.파이어폭스, 크롬 등).유감스럽게도 이 시간 초과를 연장할 수 있는 쉬운 방법은 거의 없으며 대부분의 브라우저에서는 그렇게 할 수 없습니다.여기에 있는 옵션은 단말기를 통해 스크립트에 액세스하는 것입니다.예를 들어, 윈도우에서 PHP 실행 파일이 경로 변수에 있는지 확인한 후 다음을 실행한다고 생각합니다.

C:\path\to\script> php script.php

또는 PHP CGI를 사용하는 경우 다음과 같습니다.

C:\path\to\script> php-cgi script.php

게다가, 당신은 또한, 당신이 설정할 수 있는ini_set('max_execution_time', 0);다른 사람들이 언급한 것처럼 당신의 대본에.이런 식으로 PHP 스크립트를 실행할 때는 버퍼 플러싱을 사용하여 스크립트의 진행 상황을 단말기에 주기적으로 반영할 수 있습니다.이 방법의 가장 큰 문제는 스크립트가 시작되면 전체 PHP 프로세스나 서비스를 중지하는 것 외에는 실제로 스크립트를 중지할 방법이 없다는 것입니다.

위의 "hek2mgl" 답변이 저에게 맞지 않아서, 저는 -1을 사용했습니다.

ini_set('max_execution_time', -1);

누군가에게 도움이 되길 바랍니다.

@Peter Cullen 답변에서 언급했듯이, 당신의 스크립트는 브라우저 타임아웃을 먼저 충족할 것입니다.로그 출력을 제공하는 것이 좋습니다.flush(), 연결에 버퍼가 있고 많은 출력이 제공되지 않는 한 아무것도 볼 수 없습니다.다음은 신뢰할 수 있는 로그를 제공하는 데 도움이 되는 코드 조각입니다.

set_time_limit(0);
...
print "log message";
print "<!--"; print str_repeat (' ', 4000); print "-->"; flush();
print "log message";
print "<!--"; print str_repeat (' ', 4000); print "-->"; flush();

.htaccess 파일의 다음 코드가 저에게 효과가 있었습니다.

php_value max_execution_time 0
RewriteEngine On
RewriteRule .* - [E=noconntimeout:1]
<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule>
<IfModule mod_php5.c>
#Session timeout
php_value session.cookie_lifetime 10
php_value session.gc_maxlifetime 10
</IfModule>

언급URL : https://stackoverflow.com/questions/15776400/make-script-execution-to-unlimited

반응형