Dica ao usar Background-fu

No meu projeto atual eu preciso de alguma coisa que me permita rodar processos em background, liberando a aplicação para o usuário. Entre as soluções atuais, a mais atraente é um plugin chamado Background-fu.

Ok, plugin instalado, exemplos rodados e tudo perfeito. Mas na hora de codificar o meu processo, ele não funcionava. Mexi em tudo, testei para não ver se era erro do código mesmo, mas nada.

Primeiro erro: Silenciei a exception gerada. Depois de consertar isso, o log me mostrou a exception linda, do jeito que eu queria.

Segundo erro: Passei um model como parâmetro, direto do controller pro agendador dos jobs. Mesmo sendo tudo código ruby, ele serializa e deserializa depois, o que fez o objeto ficar estranho e parar de responder aos métodos.

Solução: Salve o model na base, passe só o id para o agendador do Background-fu e, uma vez dentro do job, dê um find do model e chame os métodos que você quiser.

2 comments ↓

#1 Felipe Mesquita on 08.01.08 at 1:26 pm

Sabes de alguma comparação entre esse Background-fu e BackgroundRB e BJ?

Tenho utilizado o BackgroundRB com sucesso, mas tenho lido que o BJ é bem mais performático.

Não conhecia esse BCK-Fu.

#2 admin on 08.04.08 at 12:26 pm

O Background-fu é recomendado nos casos mais simples.
Quando você tem que mexer com muitos processos, ou precisa agendá-los (às 9 da noite do dia 30 de agosto, por exemplo), o certo é usar um dos outros dois mesmo.

Leave a Comment