Voltar ao blog
Engenharia
Filas no Laravel sem se enganar com o "fácil"
Redis, retries, idempotência e observabilidade. O que ninguém te conta sobre jobs em produção.
Gabriel Ditzel 7 min de leitura
dispatch(new Job) parece mágica até o primeiro job rodar duas vezes em produção. Filas no Laravel são fáceis de começar e traiçoeiras de operar.
Idempotência primeiro
Todo job pode ser reentregue. Se ele cobra um cartão ou manda um email, proteja com uma chave de idempotência antes de qualquer coisa.
Retries com cabeça
- Defina
$triese$backoffexplicitamente - Use
$maxExceptionspara falhas intermitentes - Mande o que falhar de vez para uma dead-letter queue
Observabilidade
Sem métricas de fila você está cego. Tempo na fila, taxa de falha e profundidade do backlog são o mínimo. Eu uso o Laravel Nightwatch para isso.
A fila não falha quando está vazia. Ela falha às 2h da manhã, cheia, no pico. Prepare-se para esse momento.