Onde estão os limites de tempo
| Camada | Exemplo de configuração |
|---|---|
| PHP | max_execution_time |
| PHP-FPM | Tempo máximo por requisição |
| Servidor web (Nginx) | Tempo de espera pela resposta do PHP |
| Balanceador ou CDN | Tempo limite da conexão |
| Navegador | O usuário desiste ou recarrega |
Por que só aumentar o limite é arriscado
Requisições longas ocupam um processo do servidor o tempo todo. Com algumas delas ao mesmo tempo, o sistema inteiro fica lento ou para. Além disso, se o usuário recarregar a página, a tarefa pode rodar duas vezes.
A solução: processamento em segundo plano
- O usuário pede o relatório, a importação ou o envio
- O sistema registra o pedido e responde na hora
- Um processo da fila executa a tarefa, em partes se necessário
- O usuário acompanha o progresso e recebe o resultado por link, notificação ou e-mail
Tarefas que costumam precisar disso
Leia também
Em sistemas Laravel, isso é feito com filas, que precisam de um processo rodando continuamente: veja filas do Laravel não processam tarefas. Implementamos processamento em segundo plano no nosso serviço de manutenção de sistemas PHP e Laravel.