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='*'是在开发模式下