Mam następujący kod w moim skrypcie ...Ruby ratowniczy i ponowić blok specyficzny kod
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
Moje pytanie brzmi: co retry
faktycznie zamiar „powtórzyć”. Jeśli skrypt wygenerował już 1000 wiadomości e-mail w jednej pętli i wysłał 999 z nich w innej pętli, a następnie przekroczył limit czasu na wysłanie 1000-tej wiadomości e-mail - Czy ponownie spróbuje określonej linii kodu, na którą napotkał błąd, uruchomi pętlę z 1000-em e-mailem, czy rozpocznie on całą pętlę, czy rozpocznie się na początku skryptu przechodzącego przez obie pętle?
Używam ruby 1.9.3.
Dobrze wiedzieć. Dzięki za pomoc. – Luigi
Oto naprawdę dobry wpis na temat używania 'retry' w pętli http://blog.mirthlab.com/2012/05/25/cleanly-retrying-blocks-of-code-after-an-exception-in-ruby / – dennismonsewicz