我在脚本中有以下代码...
我的问题是,
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。
retry
的好文章,你可以点击链接 http://blog.mirthlab.com/2012/05/25/cleanly-retrying-blocks-of-code-after-an-exception-in-ruby/ 阅读。 - dennismonsewicz