Fala galera! Vou escrever um pouquinho sobre um recurso muito bacana e ao mesmo tempo muito importante, que é o de trabalhar com tarefas em background.
Cenário
Como exemplo para nosso post, iremos adotar o envio de e-mail em massa, ok? Onde o usuário ao clicar em “disparar e-mails” será disparado cerca de 1000 e-mails.
NOTA: Não irei abordar a aplicação como um todo, irei focar somente no método do envio de e-mail no modelo de mensagem, até porque é o que mais nos interessa.
Problema
Imagine o momento que o usuário clicar em “disparar e-mails”… Dependendo da quantidade disparada, o usuário pode não ter uma experiência muito boa em seu site, pois o mesmo terá de esperar até o final da execução da tarefa. E como todos nós sabemos que alguns usuário são um pouco impacientes(Eu), o que pode acontecer para piorar? Isso mesmo! Ele irá tentar 1000.times { puts “novamente…” } achando que a ação não esta acontecendo.
Solução
Existem outras ferramentas para nos ajudar a resolver este problema, mas neste post irei abordar o resque.
A implementação do resque é bem simples, vamos lá?