Hoje ao migrar para o Delayed_job 2.0.2 me dei conta que os erros que viessem a acontecer no nos jobs em background não seriam enviados para o Hoptoad.
O Hoptoad por padrão só captas as exceptions que ocorrerem no controller. Logo seus rake tasks e background_jobs ficam de fora.
Para resolver este problema a melhor forma que encontrei foi fazer um hack leve no delayed_job. Sempre que faço algum hack acho imprescindível que este seja feito na aplicação e não no fonte da gem e criar uma versão própria. Ter uma versão própria de uma gem com hacks eu acho a pior alternativa possível.
Depois de abrir um ticket no Hoptoad eles me disseram que não tinham nada pronto em relação a isto. A minha solução foi primeiro escrever um Job que falhe e os specs que comprovem isto:
Em seguida o que fiz foi dentro do initializer que configuro o Delayed_job aplicar o hack. Como o Delayed_job já tem um método que trata as falhas dos jobs o que eu queria fazer é apenas também chamar o notify do Hoptoad e rodar o processo comun do DJ.
Para não duplicar o método, o que seria uma péssima idéia e nada DRY, eu usei uma técnica conhecida como Alias Chain para armazenar o método original e sobreescreve-lo com o meu novo método que faz a inclusão do Hoptoad e depois chamar o original armazenado.
Esta é uma técnica simples mas que ajuda muito em situações como esta. Veremos esta e muitas outras formas de solucionar problemas diversos no novo curso da eGenial: Imersão Ruby on Rails , espero ver todos lá ;)
1 Comentário to “Delayed_job e Hoptoad”
buy cheap true religion clothing diz:
30/06/2010 em 04:09 AM
Ter uma versão própria de uma gem com hacks eu acho a pior alternativa possível. thomas sabo charm
Comentário
CATEGORIAS
HomeDesign
SEO
Empreendimento
Cifras
Ruby e Rails
Flex
Photoshop
Flash
XHTML/CSS
JavaScript
Variados
Database
Firefox
Projetos
3D
Projetos
TextMate
Smalltalk
Mac
Livros
ARQUIVO
08/2010 (5)07/2010 (2)
06/2010 (4)
05/2010 (4)
04/2010 (4)
03/2010 (5)
02/2010 (7)
01/2009 (4)
12/2009 (7)
11/2009 (4)
10/2009 (10)
09/2009 (7)
08/2009 (6)
07/2009 (12)
06/2009 (5)
05/2009 (6)
04/2009 (9)
03/2009 (14)
02/2009 (18)
01/2009 (14)
12/2008 (20)
11/2008 (18)
10/2008 (9)
09/2008 (12)
08/2008 (6)
07/2008 (12)
06/2008 (10)
05/2008 (15)
04/2008 (19)




Eventos e mais eventos
comentado por Jonathas Sampaio
Eventos e mais eventos
comentado por Alison Souza
Eventos e mais eventos
comentado por Daniel Lopes
Eventos e mais eventos
comentado por Jonathas Sampaio
Curso de Rails 3.0
comentado por hiago