Verificações, na ordem
| Verificação | Detalhe |
|---|---|
| O worker está rodando? | O comando queue:work precisa ficar ativo o tempo todo, normalmente mantido por um supervisor de processos |
| A conexão está certa? | QUEUE_CONNECTION no .env; com sync, as tarefas rodam na hora, sem fila |
| O serviço da fila está no ar? | Redis, banco de dados ou serviço externo usado como fila |
| As tarefas estão falhando? | queue:failed lista as falhas; os logs mostram o motivo |
| O worker foi reiniciado após a publicação? | Workers mantêm o código antigo na memória; use queue:restart no deploy |
| A fila tem o nome certo? | Tarefas enviadas para uma fila que nenhum worker escuta |
Tempo limite e tentativas
Cada tarefa tem um tempo máximo de execução, e a conexão da fila tem um tempo após o qual considera a tarefa perdida e a libera de novo (retry_after). Se esse valor for menor que a duração da tarefa, ela pode rodar duas vezes, o que gera e-mails e cobranças duplicados. Veja mensagens ou cobranças duplicadas.
Configuração estável em produção
- Supervisor de processos que reinicia o worker se ele parar
queue:restartem toda publicação- Tarefas com número de tentativas e tempo limite definidos
- Tratamento de falhas definitivas (aviso, registro, nova tentativa manual)
- Monitoramento do tamanho da fila: se cresce sem parar, algo está errado
Leia também
Se as rotinas que rodam por horário também pararam, veja tarefas agendadas do Laravel pararam. Se e-mails não saem, veja sistema parou de enviar e-mails. Corrigimos filas e workers no nosso serviço de manutenção de sistemas PHP e Laravel.