Rails resque: registro não encontrado ao passar a variável do controlador para o trabalhador
-
27-10-2019 - |
Pergunta
Eu tenho um controlador muito simples:
def create
@poem = Poem.new(params[:poem])
@poem.prose = @poem.content
@poem.save
Resque.enqueue(PoemWork, @poem.id)
....
e um trabalhador muito simples:
class PoemWork
@queue = :poem_queue
def self.perform(poem_id)
@poem = Poem.find(poem_id)
txt = @poem.content
#do stuff here
@poem.save
end
end
E continuo recebendo "Não foi possível encontrar o poema com id= 53" ou smth.assim ...
Eu tentei passar apenas string, apenas inteiro etc. mas também termina com ActiveRecord :: RecordNotFound
o que pode estar errado?
Solução
Portanto, o problema é que o trabalhador começa antes que o objeto seja realmente criado.
Tive que instalar o gem que reinicia trabalhos com falha.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow