我正在构建一个使用delayed_job在后台安排异步任务的Rails 3应用。
当我使用.delay
方法或.handle_asynchronously
对作业进行排队时,它可以正常工作,但是当我使用自定义作业时,它不起作用。
这就是我所拥有的:
在我的lib文件夹中,我在一个名为my_job.rb
的文件中包含带有perform方法的Ruby类,其中包含:
class MyJob < Struct.new(:text)
def perform
puts text
end
end
在我的控制器中我有这个:
Delayed::Job.enqueue MyJob.new('test')
当我调用控制器时,我收到以下错误:
Exception NameError -> uninitialized constant Delayed::Job
有关如何解决此问题的任何想法?
答案 0 :(得分:0)
检查您是否正确安装了delayed_job; https://github.com/collectiveidea/delayed_job#installation(请注意,如果您使用ActiveRecord作为后端,则gem现在称为gem'delayed_job_active_record')
将说明从delayed_job 2.x升级到3.0:https://github.com/collectiveidea/delayed_job#upgrading-from-2x-to-300-on-active-record