我在我的应用程序中使用resque来延迟工作,我无法发送电子邮件和短信以异步方式批量处理用户数。并且数据存储在mongodb中,mongoid是ODM连接rails&蒙戈。
我的mongoid模型看起来像这样
class Item
include Mongoid::Document
include Geo::LocationHelper
field :name, :type => String
field :desc, :type => String
#resque queue name
@queue = :item_notification
#resque perform method
def self.perform(item_id)
@item = Item.find(item_id)
end
end
我可以在resque中添加作业,我已经使用resque-web进行了验证。每当我开始一个resque-worker
QUEUE=item_notification rake resque:work
我得到了未初始化的常量项,因为我使用resque作为rails gem并在rails root中启动rake,我相信我的mongoid模型应该被加载。
经过挖掘后,我发现我们可以通过
明确要求rake加载环境 QUEUE=item_notification rake environment resque:work
但现在我也得到了相同的错误未初始化的常量项
有人可以帮助我吗?
和我的
答案 0 :(得分:0)
实际上,它在开发环境中存在问题。将此行添加到resque.rake任务文件
之后# load the Rails app all the time
namespace :resque do
puts "Loading Rails environment for Resque"
task :setup => :environment
ActiveRecord::Base.send(:descendants).each { |klass| klass.columns }
end
一切正常