Como faço para reprogramar cada trabalho do Rufus com falha?
-
13-11-2019 - |
Pergunta
Eu tenho um Rufus "cada trabalho" que é executado periodicamente, mas às vezes ele pode falhar ao executar sua tarefa.
Em caso de falha, gostaria de reagendar uma nova tentativa em breve, em vez de esperar até o próximo ciclo.
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
Isso é possível?
Solução
Ok, isso funcionou para mim:
job.scheduler.in '5s', self
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow