问题
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?
回答1:
So the problem was that the worker starts before the object actually gets created.
Had to install the gem that restarts failed jobs.
wrote the post about it
来源:https://stackoverflow.com/questions/9335327/rails-resque-record-not-found-when-passing-variable-from-controller-to-worker