Dominando o uso de Jobs no Rails

Os Jobs são uma maneira fácil de você rodar processos demorados em background (evitando lentidão na hora de responder as requisições do usuário e tornando seu sistema mais fluido).
Nesse Screencast eu expliquei como utilizá-los (usando o Active Jobs + Redis + Sidekiq) passo a passo, então venha com a gente nesse jornada e aumente seus skills 🙂


O que vamos criar

Um gerador de relatórios (em formato html) que utiliza um Job para gerar estes relatórios de forma assíncrona.

O que vamos utilizar
Links Úteis

 

Screencasts

Entendendo os Jobs (Parte 1)


Usando os Jobs (Parte 2)


Criando nosso Projeto

Subindo o Redis (já instalado)

1 – Rode no console

*O jeito mais simples é usando docker, mas você pode fazer diretamente

 

Preparando nosso Projeto

1 – Gere o projeto rodando no console:

2 – Adicione ao Gemfile gerado:

3 – Instale rodando no console:

 

Configurando o Sidekiq

1 – Crie um initializer chamado sidekiq.rb como no vídeo e coloque nele:

2 – Coloque no seu config/application.rb:

3 – Coloque no seu routes:

4 – Suba o servidor:

5 – Visite:

http://localhost:3000/sidekiq

 

Gerando nosso Controler e View

1 – Para gerar o controller rode no console:

2 – Na view index gerada coloque:

3 – No controller gerado coloque:

class ReportsController < ApplicationController

 

4 – Ajuste o routes dessa forma:

Gerando nosso Job

1 – Para gerar o Job rode no console:

2 – No Job gerado coloque:

3 – Atualize seu controller colocando:

Subindo o Sidekiq

1 – Rode no console:

Testando

1 – Visite no browser:

http://localhost:3000/reports

2  – Pronto \o/



12 formas de vencer o bloqueio criativo e escrever textos memoráveis (e 6 dicas extras)

Não perca nenhum conteúdo

Receba nosso resumo semanal com os novos posts, cursos, talks e vagas \o/



Espero que este Post tenha sido útil para você,
Muito Obrigado pela atenção,

Grande abraço
Leonardo Scorza


Você é novo por aqui?

Primeira vez no OneBitCode? Curtiu esse conteúdo?
O OneBitCode tem muito mais para você!

O OneBitCode trás conteúdos de qualidade e em português sobre programação com foco em Ruby on Rails e outras tecnologias como Angular, Ionic, React, desenvolvimento de Chatbots e etc.

Se você deseja aprender mais, de uma forma natural e dentro de uma comunidade ativa, visite nosso Facebook e nosso Twitter, veja os screencasts e talks no Youtube, alguns acontecimentos no Instagram, ouça os Podcasts e faça parte de nossa Newsletter.

Além disso, também estamos com alguns e-Books muito interessantes para quem deseja se aprimorar como programador e também como freelancer (os e-Books são gratuitos!):

Espero que curta nossos conteúdos e sempre que precisar de ajuda com os tutoriais, fala com a gente!
Seja por
Facebook ou e-mail, estamos aqui para você 🙂

Bem-vindo à família OneBitCode \o/

abril 3, 2018

7
Deixe um comentário

avatar
4 Comment threads
3 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
5 Comment authors
Leonardo ScorzaRogerJose Antonio PAdre GarciaFlávio Carvalhoalexvirtualbr Recent comment authors
  Subscribe  
newest oldest most voted
Notify of
alexvirtualbr
Visitante

Oi Léo, muito bom material!!!

Um pequeno “bug” no final quando no ReportExampleJob está sendo gerado um arquivo html:
out_file = File.new(“#{Rails.root.join(‘public’)}/reports/report#{code}.html”, “w”)

E na Index do ReportController tem um filtro apenas para txt:
@reports = Dir[“public/reports/*.txt”]

Abraço e parabéns!!!

Flávio Carvalho
Visitante
Flávio Carvalho

Vlw Leonardo por compartilhar o seu conhecimento conosco!

Jose Antonio PAdre Garcia
Visitante
Jose Antonio PAdre Garcia

Buena

Roger
Visitante
Roger

Ola Leonardo, fiz o teste no cloud9 e funcionou perfeito, mas tentei colocar em teste no heroku, consigo até ver o painel do sidekiq, consigo mandar a pedido do relatório para fila, mas não processa de forma nenhuma. Não sei se tem mais alguma configuração especifica do redis ou sidekiq para o Heroku. Se você tiver essa informação seria interessante disponibilizar, pois encontrei muita coisa na web, mas nada que conseguisse aproveitar, até muita coisa obsoleta. Uso Rais 5.
Desde já agradeço por compartilhar a informação

Feito com s2 por OneBitCode
%d blogueiros gostam disto: