Rode e diagnostique jobs em background
Entenda por que enfileirar um job não é o mesmo que executá-lo, escolha onde o worker do Solid Queue roda (flag in-Puma vs. container dedicado) e diagnostique e conserte o incidente clássico 'jobs enfileirados mas nada roda' contando processos vivos e execuções drenadas.
PremiumEnfileirar não é executar
Numa app Rails, SomeJob.perform_later(...) não roda o seu código. Ele
grava uma linha numa fila e retorna na hora. Outra coisa — um worker —
precisa pegar essa linha e de fato executá-la. Se nenhum worker estiver
rodando, a linha simplesmente fica lá. Para sempre.
Este playbook usa o Solid Queue, o backend de Active Job baseado em banco
(suas tabelas ficam no Postgres, muitas vezes num banco queue separado).
Como a fila é só tabelas, é fácil esquecer que inserir uma linha e processar
uma linha são duas coisas completamente diferentes — e que o lado do
processamento é uma peça móvel separada que você precisa rodar e manter viva.
A falha que este playbook te treina a resolver é a clássica:
E-mails de boas-vindas, indexação de embeddings/RAG, notificações, jobs de
reindex — todos enfileiram sem problema, o código não tem erros, e nada
nunca acontece. O backlog cresce e a app parece saudável.
Você vai aprender a distinguir "enfileirado" de "executado", decidir onde
o worker roda, diagnosticar um incidente de worker morto com três
contadores, consertar e verificar que o backlog drena — mais a
armadilha dos jobs que enfileiram outros jobs.