延迟作业语法

时间:2011-09-14 17:14:37

标签: ruby-on-rails delayed-job

我有一个相同的任务,我想跑两次 - 一次30分钟后,一次120分钟后。

我现在正以这种方式写作,但我相信有更好的解决方法

  def postpone_30_min
    // same task
  end
  handle_asynchronously :postpone_30_min, :run_at => Proc.new { 30.minutes.from_now }


  def postpone_120_min
    // same task
  end
  handle_asynchronously :postpone_120_min, :run_at => Proc.new { 1200.minutes.from_now }

1 个答案:

答案 0 :(得分:4)

试试这个(假设您使用的是最新版本的DJ):

class Foo
  after_create :schedule_reminder    

  def send_reminder
  end

private:

  def schedule_reminder
    delay(:run_at => 30.minutes.from_now).send_reminder
    delay(:run_at => 2.hours.from_now).send_reminder
  end    
end