You are viewing documentation for version 2 of the AWS SDK for Ruby. Version 3 documentation can be found here.
Class: Aws::Waiters::Waiter
- Inherits:
-
Object
- Object
- Aws::Waiters::Waiter
- Defined in:
- aws-sdk-core/lib/aws-sdk-core/waiters/waiter.rb
Instance Attribute Summary collapse
-
#delay ⇒ Float
(also: #interval)
-
#max_attempts ⇒ Integer
Instance Method Summary collapse
-
#before_attempt {|attempts| ... } ⇒ Object
Register a callback that is invoked before every polling attempt.
-
#before_wait {|attempts, response| ... } ⇒ Object
Register a callback that is invoked after an attempt but before sleeping.
-
#wait(options) ⇒ Object
Instance Attribute Details
#delay ⇒ Float Also known as: interval
24 25 26 |
# File 'aws-sdk-core/lib/aws-sdk-core/waiters/waiter.rb', line 24 def delay @delay end |
#max_attempts ⇒ Integer
21 22 23 |
# File 'aws-sdk-core/lib/aws-sdk-core/waiters/waiter.rb', line 21 def max_attempts @max_attempts end |
Instance Method Details
#before_attempt {|attempts| ... } ⇒ Object
Register a callback that is invoked before every polling attempt. Yields the number of attempts made so far.
waiter.before_attempt do |attempts|
puts "#{attempts} made, about to make attempt #{attempts + 1}"
end
Throwing :success
or :failure
from the given block will stop
the waiter and return or raise. You can pass a custom message to the
throw:
# raises Aws::Waiters::Errors::WaiterFailed
waiter.before_attempt do |attempts|
throw :failure, 'custom-error-message'
end
# cause the waiter to stop polling and return
waiter.before_attempt do |attempts|
throw :success
end
51 52 53 |
# File 'aws-sdk-core/lib/aws-sdk-core/waiters/waiter.rb', line 51 def before_attempt(&block) @before_attempt << block if block_given? end |
#before_wait {|attempts, response| ... } ⇒ Object
Register a callback that is invoked after an attempt but before sleeping. Yields the number of attempts made and the previous response.
waiter.before_wait do |attempts, response|
puts "#{attempts} made"
puts response.error.inspect
puts response.data.inspect
end
Throwing :success
or :failure
from the given block will stop
the waiter and return or raise. You can pass a custom message to the
throw:
# raises Aws::Waiters::Errors::WaiterFailed
waiter.before_attempt do |attempts|
throw :failure, 'custom-error-message'
end
# cause the waiter to stop polling and return
waiter.before_attempt do |attempts|
throw :success
end
82 83 84 |
# File 'aws-sdk-core/lib/aws-sdk-core/waiters/waiter.rb', line 82 def before_wait(&block) @before_wait << block if block_given? end |
#wait(options) ⇒ Object
88 89 90 91 92 93 94 95 |
# File 'aws-sdk-core/lib/aws-sdk-core/waiters/waiter.rb', line 88 def wait() catch(:success) do failure_msg = catch(:failure) do return poll() end raise Errors::WaiterFailed.new(failure_msg || 'waiter failed') end || true end |