Class: Fal::Subscriber
- Inherits:
-
Object
- Object
- Fal::Subscriber
- Defined in:
- lib/fal/subscriber.rb
Overview
Polls queue until completion, yielding status updates.
Instance Method Summary collapse
-
#initialize(queue:, poll_interval:, timeout:) ⇒ Subscriber
constructor
A new instance of Subscriber.
- #wait_for_completion(app_id, request_id, &on_update) ⇒ Object
Constructor Details
#initialize(queue:, poll_interval:, timeout:) ⇒ Subscriber
Returns a new instance of Subscriber.
6 7 8 9 10 |
# File 'lib/fal/subscriber.rb', line 6 def initialize(queue:, poll_interval:, timeout:) @queue = queue @poll_interval = poll_interval @timeout = timeout end |
Instance Method Details
#wait_for_completion(app_id, request_id, &on_update) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/fal/subscriber.rb', line 12 def wait_for_completion(app_id, request_id, &on_update) deadline = Time.now + @timeout loop do check_timeout(deadline) status = @queue.status(app_id, request_id) yield_status(status, &on_update) return fetch_result(app_id, request_id) if status.completed? sleep(@poll_interval) end end |