我有mongoid模型
class RequestResponse
include Mongoid::Document
field :body, type: String
field :job_id, type: Fixnum
field :completed, type: Boolean
end
根据rails cast我的lib文件夹中有一个类
class MyJob < Struct.new(:session, :url, :r_id)
def perform
rr = RequestResponse.find(r_id)
session = YAML.load session
rr.body = session.get(url).body
rr.completed = true
rr.save
end
end
我在控制器中调用了一些地方
rr = RequestResponse.new
rr.save
Delayed::Job.enqueue(MyJob.new(session.to_yaml, url, rr.id),3)
我可以看到
rake jobs:work
1 jobs processed at 19.3392 j/s, 0 failed ...
如果我检查
,结果不存储在rr的表中rr.body
仍然没有任何人可以帮助我提前谢谢
答案 0 :(得分:0)
Struct.new为您创建实例变量,您可以使用self
或@
试试这个
class MyJob < Struct.new(:session, :url, :r_id)
def perform
rr = RequestResponse.find(@r_id)
session = YAML.load @session
rr.body = session.get(@url).body
rr.completed = true
rr.save
end
end
答案 1 :(得分:0)
我的工作被默默删除了。我已经通过在config / initializers / custom.rb中创建一个文件来修复了这个问题,并将此行
require File.expand_path(File.join(File.dirname(__FILE__), "../../lib/my_job"))