rails - 没有执行方法的延迟作业

时间:2015-01-13 16:06:13

标签: ruby-on-rails ruby ruby-on-rails-3 delayed-job

用很多方法创建一个大班后,我希望在延迟的工作中调用所有这些方法。

Delayed::job的做法是,您必须使用perform方法创建一个类,如下所示:

class Me < Struct.new(:something)
   def perform
     puts "GO"
   end
end

并称之为:

 Delayed::Job.enqueue Me.new(1)

但问题是我的班级已经有很多像这种类型的方法

class NameHandler
  def self.init
    ap "TODO : Delayed jobs "
  end

  def self.action_one
    ...
  end

  def self.action_two
    ...
  end

etc.

end

我想把它称为:

 Delayed::Job.enqueue NameHandler.action_one params...

Theres是最好的做法吗?或者我必须遵循经典的Delayed :: job方式并多次失败?

1 个答案:

答案 0 :(得分:0)

README中,它有多种方式:

Me.new.delay.action_one

class NameHandler
  handle_asynchronously :action_one  

  def action_one      
  end

  def self.action_one
    new.action_one
  end
end

NameHandler.action_one