Ich habe den folgenden Code in meinem Skript ...Ruby-Rettungs- und versuchen Sie es erneut spezifische Codeblock
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
Meine Frage ist, was retry
tatsächlich zu „wiederholen“ wird. Wenn das Skript bereits 1000 E-Mails in einer Schleife generiert und 999 davon in einer anderen Schleife gesendet hat und dann beim Senden der 1000. E-Mail das Zeitlimit überschritten hat - Wird die spezifische Codezeile, bei der der Fehler aufgetreten ist, erneut gestartet, wird die Schleife gestartet Wird mit der 1000. E-Mail die gesamte Schleife gestartet oder beginnt sie am Anfang des Skripts, das durch beide Schleifen läuft?
Ich verwende Ruby 1.9.3.
Gut zu wissen. Danke für die Hilfe. – Luigi
Hier ist ein wirklich guter Beitrag zur Verwendung von 'retry' in einer Schleife http://blog.mirthlab.com/2012/05/25/cleanly-retrying-blocks-of-code-after-an-exception-in-ruby / – dennismonsewicz