max_execution_time (PHP) - quando começa a contar?

1

Eu tenho poucos scripts de longa duração e meu max_execution_time é 5

No entanto, quando recebi algumas informações do plus.google.com, demorou cerca de cinco minutos. Tudo funcionou bem, mas foi apenas o processo de comer o tempo, depois desses cinco minutos, ele morreu no limite max_execution_time.

Minha pergunta é - > Como isso é possível? É max_execution_time contado apenas quando NADA está feliz (ou, por exemplo, muitas coisas muitas vezes (loop infinito))?

    
por genesis 15.07.2011 / 14:32

2 respostas

3

Começa a contar quando você inicia a execução; a razão pela qual o script não morre até que a chamada para o google retorne é que o temporizador não é verificado enquanto um syscall está em progresso, mas quando o syscall retorna, o PHP olha para o temporizador e diz "oh, você está fora de tempo "e termina o script.

    
por 15.07.2011 / 14:37
2

O contador é verificado apenas quando o encadeamento da execução está dentro do PHP - quando o processo está em espera (esperando pelo bloqueio de E / S), ele não pode verificar o relógio. Isso também ocorre se o encadeamento da execução entrar em uma extensão e permanecer lá por algum tempo.

    
por 15.07.2011 / 14:37