【问题标题】:rails - Delayed jobs without perform methodrails - 没有执行方法的延迟作业
【发布时间】:2015-03-11 15:48:56
【问题描述】:

创建一个包含许多方法的大类后,我希望所有这些方法都在延迟作业中调用。

但是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...

有一个最佳实践吗?或者我必须遵循经典的 Delayed::job 方式并输掉很多次?

【问题讨论】:

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


    【解决方案1】:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-29
      • 1970-01-01
      • 1970-01-01
      • 2012-04-20
      • 2011-06-01
      • 1970-01-01
      • 2013-11-26
      • 2011-05-26
      相关资源
      最近更新 更多