如何在每份工作中重新安排失败的Rufus?

时间:2012-02-28 05:09:12

标签: ruby-on-rails ruby rufus-scheduler

我有一个Rufus"每个工作"它定期运行,但有时它可能无法执行它的任务。

失败时,我想尽快重新安排重试,而不是等到下一个周期。

class PollProducts

  def initialize()
  end

  def call(job)
    puts "Updating products"

    begin
      # Do something that might fail
      raise if rand(3) == 1
    rescue Exception => e
      puts "Request failed - recheduling: #{e}"
      # job.in("5s") <-- What can I do?
    end
  end
end

scheduler.every '6h', PollProducts.new, :first_in => '5s', :blocking => true

这可能吗?

1 个答案:

答案 0 :(得分:2)

好的,这对我有用:

job.scheduler.in '5s', self