Skip to content

Commit 556f96e

Browse files
committed
Retry on RequestLimitExceededError
We also handle HTTP Status 429 from AWS API Gateway on throttle limit exceeded.
1 parent d8ac37d commit 556f96e

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

_config.yml

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
theme: jekyll-theme-midnight

lib/parse/client.rb

+4-1
Original file line numberDiff line numberDiff line change
@@ -429,6 +429,9 @@ def request(method, uri = nil, body: nil, query: nil, headers: nil, opts: {})
429429
when 405, 406
430430
warn "[Parse:ProtocolError] #{response}"
431431
raise Parse::Error::ProtocolError, response
432+
when 429 # Request over the throttle limit
433+
warn "[Parse:RequestLimitExceededError] #{response}"
434+
raise Parse::Error::RequestLimitExceededError, response
432435
when 500, 503
433436
warn "[Parse:ServiceUnavailableError] #{response}"
434437
raise Parse::Error::ServiceUnavailableError, response
@@ -451,7 +454,7 @@ def request(method, uri = nil, body: nil, query: nil, headers: nil, opts: {})
451454
end
452455

453456
response
454-
rescue Parse::Error::ServiceUnavailableError => e
457+
rescue Parse::Error::RequestLimitExceededError, Parse::Error::ServiceUnavailableError => e
455458
if _retry_count > 0
456459
warn "[Parse:Retry] Retries remaining #{_retry_count} : #{response.request}"
457460
_retry_count -= 1

0 commit comments

Comments
 (0)