Class: EbDeployer::EventPoller
- Inherits:
-
Object
- Object
- EbDeployer::EventPoller
- Includes:
- Utils
- Defined in:
- lib/eb_deployer/event_poller.rb
Constant Summary
Constants included from Utils
Instance Method Summary collapse
- #get_anchor ⇒ Object
-
#initialize(app, env, eb_driver) ⇒ EventPoller
constructor
A new instance of EventPoller.
- #poll(from_anchor, &block) ⇒ Object
Methods included from Utils
#backoff, #reject_nil, #symbolize_keys
Constructor Details
#initialize(app, env, eb_driver) ⇒ EventPoller
Returns a new instance of EventPoller.
5 6 7 |
# File 'lib/eb_deployer/event_poller.rb', line 5 def initialize(app, env, eb_driver) @app, @env, @eb_driver = app, env, eb_driver end |
Instance Method Details
#get_anchor ⇒ Object
9 10 11 12 |
# File 'lib/eb_deployer/event_poller.rb', line 9 def get_anchor events, _ = fetch_events_from_eb(:max_records => 1) events.first end |
#poll(from_anchor, &block) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/eb_deployer/event_poller.rb', line 14 def poll(from_anchor, &block) handled = Set.new loop do fetch_events(from_anchor) do |events| # events from api is latest first order to_be_handled = [] reached_anchor = false events.each do |event| if digest(event) == digest(from_anchor) reached_anchor = true end if !handled.include?(digest(event)) && !reached_anchor to_be_handled << event end end to_be_handled.reverse.each do |event| yield(event) handled << digest(event) end !reached_anchor end sleep 15 end end |