Method: NetSuite::Utilities#backoff
- Defined in:
- lib/netsuite/utilities.rb
#backoff(options = {}) ⇒ Object
TODO need structured logger for various statements
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/netsuite/utilities.rb', line 7 def backoff( = {}) count = 0 begin count += 1 yield rescue [:exception] || Savon::SOAPFault => e if !e..include?("Only one request may be made against a session at a time") raise e end if count >= ([:attempts] || 8) raise e end # log.warn("concurrent request failure", sleep: count, attempt: count) sleep(count) retry end end |