Ruby on rails Rails resque:将变量从控制器传递给工作程序时未找到记录

Ruby on rails Rails resque:将变量从控制器传递给工作程序时未找到记录,ruby-on-rails,ruby,background-process,resque,Ruby On Rails,Ruby,Background Process,Resque,我有一个非常简单的控制器: def create @poem = Poem.new(params[:poem]) @poem.prose = @poem.content @poem.save Resque.enqueue(PoemWork, @poem.id) .... 一个非常简单的工人: class PoemWork @queue = :poem_queue def self.perform(poem_id) @poem = Poem.find(poem_id

我有一个非常简单的控制器:

def create
  @poem = Poem.new(params[:poem])
  @poem.prose = @poem.content
   @poem.save
   Resque.enqueue(PoemWork, @poem.id)
 ....
一个非常简单的工人:

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
我不断得到“找不到id=53的诗”或smth。像那样

我试着只传递字符串、整数等等。。但它也以ActiveRecord::RecordNotFound结尾


有什么问题吗?

所以问题是工作进程在对象实际创建之前启动

必须安装重新启动失败作业的gem


您的后台工作进程是否与web服务器进程连接到同一数据库?嗯。。。我怎么检查?我有两个应用程序使用resque,我为它们使用不同的redistogo dbs(在resque.rb中定义它们)。。。这也是localhost上的一个错误,您没有远程测试它yetProvide提供您用于运行workers的确切命令。您是否在开发模式下本地运行Rails?bundle exec rake resque:work QUEUE='*'是在开发模式下