SlideShare uma empresa Scribd logo
1 de 18
Baixar para ler offline
Janeiro/11


  Resque
    Rubem Azenha

       @razenha
rubem.azenha@gmail.com
 razenha.wordpress.com
Processamento Assíncrono
       Mensageria
Sistema anterior do meu cliente....
Funcionalidades Importantes


  Importação de planilhas Excel
           Exportação
Geocodificação (Google Maps API)
Problemas - Importação


Volume (3000-5000 linhas)
        Validação
(campos required, formato,
      duplicidade)
Problemas - Exportação



Volume (3000-5000 * nro
      de clientes)
Problemas - Geocodificação



  Recurso externo limitado
   Estabilidade do serviço
  Tempo de resposta (500-
        7000 ms)
Solução?

   "Deixa pra depois"


          aka


Processamento assíncrono
Solução 1 - delayed_job


Simples
Usa ActiveRecord pra guardar jobs
Script start/stop
Solução 1 - delayed_job

       @qmx

       @fabiokung


delayed_job sucks!!!!!
    Resque rules!
Dito e feito...

Workers consumindo muitos
recursos
Dificuldade de obter jobs que
falharam
Dificuldade de conseguir o backtrace
dos erros
Jobs simplesmente não iniciavam!
Resque - por que não?

Infraestrutura desconhecida –
Redis
Falta de script de inicialização
Um pouco mais complicado que
delayed_job no começo
Resque - problemas resolvidos!

  Instalar Redis - brew/apt-get/yum
  Script -
  https://gist.github.com/790965
  Simples e funciona :)
https://github.com/blog/542-introducing-resque
Importação

https://gist.github.com/790951
https://gist.github.com/790952
https://gist.github.com/790953
https://gist.github.com/790955
Exportação

https://gist.github.com/790956
https://gist.github.com/790957
Geocodificação
https://gist.github.com/790958
Obrigado!




rubem.azenha@gmail.com
       @razenha
 razenha.wordpress.com

Mais conteúdo relacionado

Semelhante a Resque - Guru-SP 23/01/2011

Tdc graphql do node para go
Tdc   graphql do node para goTdc   graphql do node para go
Tdc graphql do node para goAllan Carvalho
 
sys._current_frames(), Radiografando seu software em tempo real
 sys._current_frames(), Radiografando seu software em tempo real sys._current_frames(), Radiografando seu software em tempo real
sys._current_frames(), Radiografando seu software em tempo realLeonardo Rochael Almeida
 
CI&T DevDay BH 2013 - Google AppEngine: 3 anos de estrada no case com a maior...
CI&T DevDay BH 2013 - Google AppEngine: 3 anos de estrada no case com a maior...CI&T DevDay BH 2013 - Google AppEngine: 3 anos de estrada no case com a maior...
CI&T DevDay BH 2013 - Google AppEngine: 3 anos de estrada no case com a maior...Gustavo Concon
 
PyData - Consumindo e publicando web APIs com Python
PyData - Consumindo e publicando web APIs com PythonPyData - Consumindo e publicando web APIs com Python
PyData - Consumindo e publicando web APIs com PythonBruno Rocha
 
Replicacao Object Sistemas
Replicacao Object SistemasReplicacao Object Sistemas
Replicacao Object Sistemastaniamaciel
 
Tendências do Mercado de Internet
Tendências do Mercado de InternetTendências do Mercado de Internet
Tendências do Mercado de InternetVanessa Oliveira
 
Ruby e Erlang de mãos dadas
Ruby e Erlang de mãos dadasRuby e Erlang de mãos dadas
Ruby e Erlang de mãos dadasÉverton Ribeiro
 
Integração de sistemas legados com Plone
Integração de sistemas legados com PloneIntegração de sistemas legados com Plone
Integração de sistemas legados com PloneFabiano Weimar
 
Aula05-ProgramacaoparaWeb123456878915151
Aula05-ProgramacaoparaWeb123456878915151Aula05-ProgramacaoparaWeb123456878915151
Aula05-ProgramacaoparaWeb123456878915151alderleysousa444
 
Construindo um micro-serviço Java 100% funcional em 15 minutos
Construindo um micro-serviço Java 100% funcional em 15 minutosConstruindo um micro-serviço Java 100% funcional em 15 minutos
Construindo um micro-serviço Java 100% funcional em 15 minutosRafael Chaves
 
Oracle e SQL Server na prática mitos, semelhanças e diferenças
Oracle e SQL Server na prática mitos, semelhanças e diferençasOracle e SQL Server na prática mitos, semelhanças e diferenças
Oracle e SQL Server na prática mitos, semelhanças e diferençasLeonardo Pedroso Costa
 
Qcon 2013 - Walmart Frontend Solution using Node.js
Qcon 2013 - Walmart Frontend Solution using Node.jsQcon 2013 - Walmart Frontend Solution using Node.js
Qcon 2013 - Walmart Frontend Solution using Node.jsJorge Walendowsky
 
Workshop - nivelamento tech
Workshop - nivelamento techWorkshop - nivelamento tech
Workshop - nivelamento tech21212com
 
Entre na fila. Processamento distribuído usando Gearman
Entre na fila. Processamento distribuído usando GearmanEntre na fila. Processamento distribuído usando Gearman
Entre na fila. Processamento distribuído usando GearmanElton Minetto
 
Desenvolvimento web com Ruby on Rails (parte 1)
Desenvolvimento web com Ruby on Rails (parte 1)Desenvolvimento web com Ruby on Rails (parte 1)
Desenvolvimento web com Ruby on Rails (parte 1)Joao Lucas Santana
 
Matando web forms e modernizando um grande varejista
Matando web forms e modernizando um grande varejistaMatando web forms e modernizando um grande varejista
Matando web forms e modernizando um grande varejistaJosé Roberto Araújo
 
Big Data, Performance, Posix, RTB no mercado de publicidade online
Big Data, Performance, Posix, RTB no mercado de publicidade onlineBig Data, Performance, Posix, RTB no mercado de publicidade online
Big Data, Performance, Posix, RTB no mercado de publicidade onlineTiago Peczenyj
 

Semelhante a Resque - Guru-SP 23/01/2011 (20)

Ruby profiling
Ruby profilingRuby profiling
Ruby profiling
 
React nos Trilhos
React nos TrilhosReact nos Trilhos
React nos Trilhos
 
Tdc graphql do node para go
Tdc   graphql do node para goTdc   graphql do node para go
Tdc graphql do node para go
 
sys._current_frames(), Radiografando seu software em tempo real
 sys._current_frames(), Radiografando seu software em tempo real sys._current_frames(), Radiografando seu software em tempo real
sys._current_frames(), Radiografando seu software em tempo real
 
CI&T DevDay BH 2013 - Google AppEngine: 3 anos de estrada no case com a maior...
CI&T DevDay BH 2013 - Google AppEngine: 3 anos de estrada no case com a maior...CI&T DevDay BH 2013 - Google AppEngine: 3 anos de estrada no case com a maior...
CI&T DevDay BH 2013 - Google AppEngine: 3 anos de estrada no case com a maior...
 
PyData - Consumindo e publicando web APIs com Python
PyData - Consumindo e publicando web APIs com PythonPyData - Consumindo e publicando web APIs com Python
PyData - Consumindo e publicando web APIs com Python
 
Replicacao Object Sistemas
Replicacao Object SistemasReplicacao Object Sistemas
Replicacao Object Sistemas
 
Introdução a worker
Introdução a workerIntrodução a worker
Introdução a worker
 
Tendências do Mercado de Internet
Tendências do Mercado de InternetTendências do Mercado de Internet
Tendências do Mercado de Internet
 
Ruby e Erlang de mãos dadas
Ruby e Erlang de mãos dadasRuby e Erlang de mãos dadas
Ruby e Erlang de mãos dadas
 
Integração de sistemas legados com Plone
Integração de sistemas legados com PloneIntegração de sistemas legados com Plone
Integração de sistemas legados com Plone
 
Aula05-ProgramacaoparaWeb123456878915151
Aula05-ProgramacaoparaWeb123456878915151Aula05-ProgramacaoparaWeb123456878915151
Aula05-ProgramacaoparaWeb123456878915151
 
Construindo um micro-serviço Java 100% funcional em 15 minutos
Construindo um micro-serviço Java 100% funcional em 15 minutosConstruindo um micro-serviço Java 100% funcional em 15 minutos
Construindo um micro-serviço Java 100% funcional em 15 minutos
 
Oracle e SQL Server na prática mitos, semelhanças e diferenças
Oracle e SQL Server na prática mitos, semelhanças e diferençasOracle e SQL Server na prática mitos, semelhanças e diferenças
Oracle e SQL Server na prática mitos, semelhanças e diferenças
 
Qcon 2013 - Walmart Frontend Solution using Node.js
Qcon 2013 - Walmart Frontend Solution using Node.jsQcon 2013 - Walmart Frontend Solution using Node.js
Qcon 2013 - Walmart Frontend Solution using Node.js
 
Workshop - nivelamento tech
Workshop - nivelamento techWorkshop - nivelamento tech
Workshop - nivelamento tech
 
Entre na fila. Processamento distribuído usando Gearman
Entre na fila. Processamento distribuído usando GearmanEntre na fila. Processamento distribuído usando Gearman
Entre na fila. Processamento distribuído usando Gearman
 
Desenvolvimento web com Ruby on Rails (parte 1)
Desenvolvimento web com Ruby on Rails (parte 1)Desenvolvimento web com Ruby on Rails (parte 1)
Desenvolvimento web com Ruby on Rails (parte 1)
 
Matando web forms e modernizando um grande varejista
Matando web forms e modernizando um grande varejistaMatando web forms e modernizando um grande varejista
Matando web forms e modernizando um grande varejista
 
Big Data, Performance, Posix, RTB no mercado de publicidade online
Big Data, Performance, Posix, RTB no mercado de publicidade onlineBig Data, Performance, Posix, RTB no mercado de publicidade online
Big Data, Performance, Posix, RTB no mercado de publicidade online
 

Resque - Guru-SP 23/01/2011