Rails resque: Record not found when passing variable from controller to worker
-
27-10-2019 - |
Question
I have a very simple controller:
def create
@poem = Poem.new(params[:poem])
@poem.prose = @poem.content
@poem.save
Resque.enqueue(PoemWork, @poem.id)
....
and a very simple worker:
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
And I keep getting "Couldn't find Poem with id=53" or smth. like that...
I tried passing just string, just integer etc.. but it also ends with ActiveRecord::RecordNotFound
what can be wrong?
Solution
So the problem was that the worker starts before the object actually gets created.
Had to install the gem that restarts failed jobs.
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow