Uso de cookies em comunidade.academiadoruby.com.br

Utilizamos cookies para melhorar sua experiência. Você pode aceitar ou recusar o uso de cookies não essenciais. Sua escolha ficará salva por 6 meses. Saiba mais em Política de Privacidade · Política de Cookies

  1. Conteúdos
  2. Lives

Descomplicando o ActiveJob: Tudo o Que Você Precisa Saber - Live #037

Daniel Denis Moreira

· 5 min de leitura

Conteúdo em Vídeo

Faça login para assistir

Pense no fluxo de uma compra online. O usuário clica no botão "comprar". Se o seu sistema tentar reservar o produto, processar o pagamento no gateway de terceiros, gerar o pedido, disparar o e-mail e mandar um WhatsApp de confirmação — tudo na mesma requisição linear — você tem um problema estrutural sério. O usuário vai ficar encarando uma tela carregando até desistir ou o navegador dar timeout.

A arquitetura do pensamento aqui é ir direto ao ponto: nós precisamos tirar o que não é imediato da frente do usuário. O conceito de processos assíncronos existe justamente para isso. Você entrega a resposta rápida na tela e deixa o trabalho pesado rodando nos bastidores. Sem inflar sua stack com ferramentas e sem cair nas armadilhas de arquiteturas mirabolantes. No mundo Rails, resolvemos isso nativamente com o ActiveJob.

A Padronização com ActiveJob

Quem é das antigas sabe que o Rails nem sempre teve uma interface unificada para filas em background. Há alguns anos, se você usasse o Rescue, a sintaxe era uma. Se decidisse migrar para o Sidekiq por performance, precisava reescrever código na aplicação inteira. Era um engessamento que não fazia sentido.

A partir do Rails 5, recebemos o ActiveJob. Ele atua como um adaptador agnóstico. Assim como o Active Record nos permite trocar do MySQL para o PostgreSQL sem alterar a lógica de consultas, o ActiveJob permite trocar o motor de processamento das filas sem mudar uma linha do seu código de negócio.

Opções de adaptadores não faltam: Sidekiq, Delayed Job, Shoryuken. Mas a nossa escolha aqui foca na simplicidade. Vamos olhar para o Solid Queue. Em vez de exigir que você suba e monitore um servidor Redis apenas para gerenciar filas, o Solid Queue roda em cima do próprio banco de dados relacional. Menos dependência externa, deploy mais limpo, custo de infraestrutura menor.

Configurando o Solid Queue

Para trazer o Solid Queue para o seu projeto, a instalação vai direto ao ponto:

bundle add solid_queue
bin/rails solid_queue:install
bin/rails db:migrate

Conteúdo Exclusivo

Este conteúdo está disponível para membros. Faça login para continuar lendo.

Fazer Login

Não tem conta? Criar conta


Tópicos Relacionados
Compartilhar

Escrito por Daniel Denis Moreira

Criador da Academia do Ruby.
Acredito que simplicidade é estratégia — e que Rails é uma vantagem competitiva.

Feedback

Esse conteúdo foi…

Comentários (0)

Ainda não há comentários. Seja o primeiro a comentar!

Faça login para deixar um comentário.

Conteúdos Relacionados