Ho il seguente codice nel mio script ...Rubino salvataggio e riprovare blocco di codice specifico
begin
#Loop to create 1000 emails...
#Loop to send 1000 emails...
rescue Timeout::Error => e
retry_attempts += 1
if retry_attempts < 10
retry
else
puts "Timeout error, deleting emails...".red
logs.puts("Rescued a timeout error...#{e}")
email_ids_all.each do |email_delete|
#delete all email...
end
La mia domanda è che cosa retry
in realtà sta per "riprovare". Se lo script ha già generato 1000 e-mail in un ciclo e ne ha inviato 999 in un altro ciclo, e quindi si invia l'e-mail 1000. Riprova la riga di codice specifica su cui ha rilevato l'errore, inizierà il ciclo oltre alla millesima e-mail, inizierà l'intero ciclo o inizierà all'inizio dello script che attraversa entrambi i loop?
Sto usando Ruby 1.9.3.
Buono a sapersi. Grazie per l'aiuto. – Luigi
Ecco un ottimo post sull'uso di 'retry' in un loop http://blog.mirthlab.com/2012/05/25/cleanly-retrying-blocks-of-code-after-an-exception-in-ruby / – dennismonsewicz