Tôi có đoạn code sau trong kịch bản của tôi ...của Ruby cứu và thử lại mã cụ thể khối
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
Câu hỏi của tôi là những gì retry
đang thực sự xảy ra để "thử lại". Nếu kịch bản đã tạo 1000 email trong một vòng lặp và gửi 999 email trong một vòng lặp khác, và sau đó nó sẽ gửi email thứ 1000- Nó sẽ thử lại dòng mã cụ thể mà nó gặp lỗi, nó sẽ bắt đầu vòng lặp hay không với email thứ 1000, nó sẽ bắt đầu toàn bộ vòng lặp, hay nó sẽ bắt đầu ở đầu tập lệnh chạy qua cả hai vòng lặp?
Tôi đang sử dụng ruby 1.9.3.
Thông tin cần biết. Cảm ơn đã giúp đỡ. – Luigi
Đây là một bài viết thực sự tốt về cách sử dụng 'thử lại trong một vòng lặp http://blog.mirthlab.com/2012/05/25/cleanly-retrying-blocks-of-code-after-an-exception-in-ruby / – dennismonsewicz