Class: Belpost::Retry
- Inherits:
-
Object
- Object
- Belpost::Retry
- Defined in:
- lib/belpost/retry.rb
Constant Summary collapse
- MAX_RETRIES =
3- INITIAL_DELAY =
1
Class Method Summary collapse
Class Method Details
.with_retry(max_retries: MAX_RETRIES, initial_delay: INITIAL_DELAY) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/belpost/retry.rb', line 8 def self.with_retry(max_retries: MAX_RETRIES, initial_delay: INITIAL_DELAY) retries = 0 delay = initial_delay begin yield rescue NetworkError, TimeoutError, ServerError => e retries += 1 if retries <= max_retries sleep(delay) delay *= 2 retry else raise e end end end |