2012-08-11 2 views
0

많은 물건을 처리하는 PHP 스크립트가있어서 많은 양의 결과가 나오며 완료하는 데 몇 분이 걸릴 수 있습니다.임의의 시간에 PHP 스크립트가 중단되고 있습니다.

나는 처음에 set_time_limit (999999)를 이미 배치했습니다.

그 전에는 분명히 제한 시간 인 30 초를 초과하여 중단되었습니다. 그 일이 일어 났을 때 치명적인 오류가 기록되었다.

이제 브라우저에서 스크립트를 호출합니다. 브라우저에서 실시간으로 스크립트 출력을 거의 관찰하지만 임의의 지점에서 스크립트가 중단됩니다. 그것은 이 아니며은 제한 시간 (분명히)을 초과하지 않으며 NO ERROR가 기록됩니다. 사실, 두 번째 시도를하면 다른 시점에서 중단됩니다.

오류가 발생하지 않고 제한 시간에 도달하지 않으면 스크립트가 중단 될 수 있습니다. 아마도 시간 초과로 인해 클라이언트 (브라우저)와의 연결이 끊어 졌을 것입니까? (데이터가 지속적으로 출력되기 때문에 데이터를 기다리는 시간 초과는 아님). 아마도 브라우저가 html 페이지의 최대 크기를 가질 수 있습니까?

하지만이 두 가지 경우 중 하나 인 경우 오류로 기록되지 않는 이유는 무엇입니까?

+0

클라이언트의 연결 품질이 낮 으면 이런 종류의 문제가 발생할 수 있습니다. 나는 때때로 내 목표를 겪고있다. –

+0

코드는 어떻게됩니까? 코드는 어디에 있습니까? 스크립트에서 데이터베이스에 연결하고 있습니까? 명령 줄에서 스크립트를 실행 하시겠습니까? 코드를 추가하고 스크립트에 대해 설명하십시오. –

+0

그것은 코드가 아닙니다. 치명적인 오류가 발생하면 로그에 기록됩니다. 치명적이지 않은 오류가 발생하면 사용중인 yii 프레임 워크에 의해 처리되고 오류 페이지가 표시됩니다. 어느 쪽도 그렇지 않다. 또한 코드의 오류로 인해 항상 동일한 지점에서 스크립트가 중단됩니다. 그것은 분명히 @Truth가 말한 것과 같습니다; 내가 이해하지 못하는 이유는 PHP가 이러한 경우에 오류 로그에 오류 메시지를 기록하지 않는 이유입니다. – matteo

답변

0

스크립트가 제한 시간에 도달하면 치명적인 오류가 발생하므로 오류가 표시되지 않아야합니다 (오류보고가 활성화되어 있는지 확인하십시오. 스크립트에서 설정하거나 php.ini 파일에 있음). 이 대신에 시간 제한 사용 desactivate하려면

:

set_time_limit(0); 

더 많은 정보 없음을, 우리는 불행하게도 많은 도움이 될 수 없습니다.

관련 문제