Skip to content

quixote15/masterclass-bgjobs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GoStack

Estudo : NodeJS + Bull + Background Jobs com Redis

Esse projeto foi baseado na masterclasse da rocketseat sobre Background Jobs (FILAS) com NODEJS

Link do Video no youtube

Liçoes

Muitas tarefas da nossa aplicação não precisam executar de forma síncrona, por exemplo, e-mails, relatórios, etc. Nesses casos, o melhor a se fazer é processar essas tarefas em segundo plano. Geralmente ao criamos uma API utilizamos a arquitetura Cliente-servidor e, portanto, existem requisiçōes e respostas HTTP.

Dessa forma, quando uma requisição requer processamento que inevitavelmente leva mais tempo para executar, como a geração de um relatório, deve ser considerado que tal processamento seja feito em background.

Existem várias libs em NODEJS que permitem o gerenciamento de background tasks. Neste projeto foi utilizado o Bull que nos permite não só executar background tasks mas também monitorar falhas, realizar retentativas, adicionar prioridades e tudo isso de uma forma extremamente simples e performática. Existe Também o Bee-Queue que é até mais performático que o Bull, porém, possui algumas features que considero importante em um projeto como realizar retentativas e definir prioridades entre jobs.

Tanto o Bull quanto bee-queue utilizam o Redis para realizar o gerenciamento das filas, também chamadas de background tasks. O Redis é o banco de dados que trabalha com o conceito de armazenar somente tupas Key-Value (chave-valor), o que o torna perfeito para o cenário de gerenciamento das filas criadas para execuçao em backgroun seja pelo bull, bee-queue ou similares.

É importante perceber que em desenvolvimento tanto a API Node quanto o serviço de gerenciamento de jobs podem estar na mesma máquina, porém em produção deve-se considerar a execuçao em maquinas com hadwares diferentes para melhor desempenho. Além disso, também é interessante utilizar ferramentas como o Sentry para monitorar erros que venham ocorrer durante a execução dos jobs.

✋🏻 Pré-requisitos

🔥 Instalação e execução

  1. Execute o Redis: docker run --name redis -p 6379:6379 -d -t redis:alpine
  2. Faça um clone desse repositório;
  3. Entre na pasta cd masterclass-bgjobs;
  4. Rode yarn dentro da raiz do projeto
  5. execute yarn dev pra iniciar o servidor de desenvolvimento;

⚡️ Como contribuir

  • Faça um fork desse repositório;
  • Cria uma branch com a sua feature: git checkout -b minha-feature;
  • Faça commit das suas alterações: git commit -m 'feat: Minha nova feature';
  • Faça push para a sua branch: git push origin minha-feature.

Depois que o merge da sua pull request for feito, você pode deletar a sua branch.

📝 Licença

Esse projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.


Estudo feito a partir de videos e tutoriais da Rocketseat 👋 Entre na nossa comunidade!

About

Estudo : NodeJS + Bull + Background Jobs com Redis

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published