我有一个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
这可能吗?
答案 0 :(得分:2)
好的,这对我有用:
job.scheduler.in '5s', self