Rails resque: Record not found when passing variable from controller to worker
-
27-10-2019 - |
문제
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?
해결책
So the problem was that the worker starts before the object actually gets created.
Had to install the gem that restarts failed jobs.
제휴하지 않습니다 StackOverflow