Desativa o tempo limite de leitura do FastCGI no Nginx?

5

Existe uma maneira de desativar o tempo limite de leitura do FastCGI? (fastcgi_read_timeout)

Configurar para zero não funciona e apenas causa um tempo limite imediato.

  • Nginx 1.0.5
  • PHP-FPM 5.3.6-13ubuntu3.6

A razão pela qual eu preciso contornar o tempo limite é por causa da forma como os relatórios são gerados pelo sistema que usamos. Como o forking não é possível no PHP-FPM (pctnl_fork () é desativado), o processamento do relatório é feito assim que a solicitação é enviada. Isso faz com que a leitura seja interrompida até que o processamento seja concluído pelo sistema.

    
por Kevin Herrera 04.05.2012 / 17:19

2 respostas

5

Parece que sua única opção é definir fastcgi_read_timeout para um valor muito grande (como 1h ou 1d) .

    
por 10.05.2012 / 03:12
0

Como gostaria de resolver o problema:

  1. Quando o usuário envia uma solicitação para gerar um relatório, use exec("php report.php") para executar o script de geração de relatório no modo CLI. Use algumas informações identificáveis como argumentos, é claro.

  2. Carregue uma página 'Aguarde' para o usuário, usando o AJAX para verificar se o relatório é feito usando ps w . Procure o nome do script e os argumentos usados.

  3. Uma vez feito, redirecione para a página do relatório.

Desta forma, você evita que os usuários atualizem a atualização se a espera ficar muito longa (tornando-a ainda mais longa), além de informar ao usuário que o processo ainda está em execução.

    
por 08.05.2012 / 16:44