Trong cuốn sách khiêm tốn của Ruby, một ví dụ của việc sử dụng Rescue và thử lại được cung cấp gửi tiêu đề HTTP đến một máy chủ bằng cách sử dụng đoạn mã sau:Làm cách nào để hạn chế thử lại và cứu hộ trong ví dụ Ruby này?
def make_request
if (@http11)
self.send('HTTP/1.1')
else
self.send('HTTP/1.0')
end
rescue ProtocolError
@http11 = false
retry
end
Để hạn chế một vòng lặp vô hạn trong trường hợp nó không giải quyết được, tôi sẽ phải chèn mã nào để giới hạn số lần thử lại để nói 5 lần? nó sẽ là một cái gì đó như:
5.times { retry }
Chưa hoàn toàn, nhưng đoạn trích đó dường như đủ đơn giản. Cảm ơn. – Simpleton
Cảm ơn. Lý do chính của tôi để hỏi là chỉ để hiểu làm thế nào, không có một ứng dụng thực tế cho đoạn mã này được nêu ra. – Simpleton
Tôi biết đây là câu trả lời cũ, nhưng [đá quý có thể truy xuất] (https://github.com/kamui/retriable) về cơ bản điều này chính xác. – ZombieDev