Guia

Sistema apresenta timeout em tarefas demoradas: como corrigir?

Timeout acontece quando uma tarefa demora mais do que o tempo limite configurado no PHP, no servidor web ou no navegador. Aumentar o limite pode destravar um caso pontual, mas a correção duradoura é tirar a tarefa da requisição: o sistema registra o pedido, processa em segundo plano (em uma fila) e avisa o usuário quando terminar.

Publicado em · 1 min de leitura

Onde estão os limites de tempo

CamadaExemplo de configuração
PHPmax_execution_time
PHP-FPMTempo máximo por requisição
Servidor web (Nginx)Tempo de espera pela resposta do PHP
Balanceador ou CDNTempo limite da conexão
NavegadorO 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

  • Importação de planilhas (guia)
  • Exportação de relatórios grandes (guia)
  • Envio de e-mails e mensagens em massa
  • Processamento de imagens e documentos
  • Chamadas a APIs externas lentas

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.

Continue lendo

Seu concorrente já tem um site. E você?

Receba um orçamento personalizado em minutos. Sem compromisso, sem enrolação.

  • Resposta rápida no WhatsApp
  • Orçamento 100% gratuito
  • Garantia de 7 dias

🔒 Seus dados estão seguros. Sem spam.