Class: MTProto::Async::Middleware::FloodWait
- Defined in:
- lib/mtproto/async/middleware/flood_wait.rb
Instance Method Summary collapse
- #call(request, future, retry_fn, retries) ⇒ Object
-
#initialize(app, max_retries: 5) ⇒ FloodWait
constructor
A new instance of FloodWait.
Constructor Details
#initialize(app, max_retries: 5) ⇒ FloodWait
Returns a new instance of FloodWait.
9 10 11 12 |
# File 'lib/mtproto/async/middleware/flood_wait.rb', line 9 def initialize(app, max_retries: 5) super(app) @max_retries = max_retries end |
Instance Method Details
#call(request, future, retry_fn, retries) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/mtproto/async/middleware/flood_wait.rb', line 14 def call(request, future, retry_fn, retries) wrapped = @app.call(request, future, retry_fn, retries) wrapped.rescue do |error| if flood_wait_error?(error) && retries < @max_retries delay = extract_delay(error.) sleep(delay) retry_fn.call.value! else raise error end end end |