У меня есть следующий код в моем сценарии ...Рубин спасательное и повторить попытку заблокировать определенный код
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
Мой вопрос: что retry
на самом деле собирается «повторить». Если скрипт уже сгенерировал 1000 электронных писем в одном цикле и отправил 999 из них в другой цикл, а затем он истечет при отправке 1000-го электронного письма. Будет ли он повторять определенную строку кода, с которой она столкнулась с ошибкой, начнет ли цикл с 1000-м электронным письмом, начнет ли он весь цикл, или начнется ли он в начале скрипта, проходящего через оба цикла?
Я использую ruby 1.9.3.
Хорошо знать. Спасибо за помощь. – Luigi
Вот действительно хорошая статья об использовании 'retry' в цикле http://blog.mirthlab.com/2012/05/25/cleanly-retrying-blocks-of-code-after-an-exception-in-ruby / – dennismonsewicz