logo
  • Home
  • Acerca
  • Autores
  • Faq
  • Rede
  Twitter   Feed-me! RSS!

Delayed_job e Hoptoad

Colocado por Daniel Lopes na(s) categoria(s): 1, 2.0, 6, AR, back, class, control, Curso, Design, Diversos, egenial, err, erro, falha, fonte, for, Hacks, HCI, IE, if, mg, O, on, padrão, problema, problemas, processo, pt, rails, rake, RIA, Ria’s Geral, ruby, Ruby e Rails, ruby on rails, UI, web em 04 13th, 2010 | Sem comentários

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.

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á ;)



Veja o post original no blog do autor aqui!  

Daniel Lopes

Escrito por Daniel Lopes @ http://blog.areacriacoes.com.br/
Saiba mais sobre o autor na sua pagina de perfil
Outros posts do autor:
» MTV - Algumas variações de logo da empresa e backgrounds do site.
» Novas funcionalidades do Cifras
» Nomeie as coisas corretamente

Deixe um comentário



Spam Protection by WP-SpamFree

ACERCA

O que é o RedeRIA ?

O redeRIA não é nada mais que um agregador de feed's que disponibiliza o conteudo de varios blogs e autores ao redor do mundo RIA, actualmente agregamos mais de 2795 entradas vindas de 53 blogs especializados em ria’s, pelo que só fica a ganhar em assinar o feed ou seguir a comunidade no twitter.

Se acha que o seu blog ou um blog de um amigo é interessante e util para os leitores o redeRIA, faça a sua submissão aqui.

Feed: assine já
Twitter: siga-nos

GOOGLE

Votação


Deveria o RedeRia agregar conteúdo em inglês?
Ver Resultados

AUTORES


Eduardo KrausAlexandre TadashiBindableCognitiva SoluçõesDaniel LopesDaniel SchmitzDanielPedrinhaDClick TeamEbercomEdgard DavidsonElvis FernandesErko BrideeFabiel PrestesFábio Batista da SilvaFabio da SilvaFabriccio BernardesFelipe BorellaFlavia MoreiraGabriel VersalliniGabriela T. PerryIgor MusardoJanderson CardosoJoão AugustoJose Carlos FielKelps SousaLeonardo FrançaLucas MarçalLuis MessiasLuiz TarabalMario JuniorMário SantosMauro MartinsPablo SouzaPedro ClaudioreneRia BrazilriaPTRicardo CerqueiraRobson FernandesRodrigo Pereira FragaSaintBrSamuelFacchinelloSergio SouzaSilva DeveloperStefan HorochovecTech CaffeTecinforThiago BuenoVedVinícius SandimWillian ManoXAML Cast

PUBLICIDADE








Powered by Wordpress & msdevstudio.com