Pergunta

Recentemente criou uma interface Java para um web-service PHP que usa do PHP SoapServer.

A minha aplicação está a efectuar uma sincronização de dados de longa duração e pelo que eu sei de PHP eu me preparei para obter conexões fechadas por causa do limite max_execution_time.

Mas eu nunca obter qualquer tipo de erro, como se a instância SoapServer está sendo executado para sempre.

Meu melhor palpite aqui, é que eu realmente não entendo como SoapServer está funcionando. Então, alguém pode lançar alguma luz sobre isso? É SoapServer não afetado pela max_execution_time?

EDIT:. Em meus testes max_execution_time está definido para 5 minutos, mas o meu programa está sendo executado por horas

Foi útil?

Solução

Se o max_execution_time é definido como 0, quer no seu php.ini ou usando ini_set() ou set_time_limit() em seu script, então não haveria nenhum limite. Poderia ser este o motivo?

Editar : Além disso, eu só notei isso no manual do :

Nota: A função set_time_limit () ea max_execution_time diretiva de configuração só afetam o tempo de execução do próprio script. Qualquer tempo gasto com atividades que aconteçam fora da execução do script como chamadas de sistema usando system (), operações de fluxo, consultas de banco de dados, etc, não está incluído ao determinar o tempo máximo que o script foi executado. Isso não é verdade no Windows, onde o tempo medido é real.

Talvez você não está recebendo corte porque a maioria do tempo é gasto em streaming de dados ou a execução de consultas, que de acordo com isso, não contam para o limite de tempo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top