Как мне перенести неудавшегося Руфуса на каждую работу? - PullRequest
1 голос
/ 28 февраля 2012

У меня есть 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 Ответ

2 голосов
/ 02 марта 2012

Хорошо, это сработало для меня:

job.scheduler.in '5s', self
...