Class: EmPipelines::PeriodicEventSource

Inherits:
EventSource show all
Defined in:
lib/empipelines/periodic_event_source.rb

Instance Method Summary collapse

Methods inherited from EventSource

#on_event, #on_finished

Constructor Details

#initialize(em, name, interval_in_secs, &event_sourcing_code) ⇒ PeriodicEventSource

on finish!!!!



4
5
6
7
8
9
# File 'lib/empipelines/periodic_event_source.rb', line 4

def initialize(em, name, interval_in_secs, &event_sourcing_code)
  @em                  = em
  @name                = name
  @interval_in_secs    = interval_in_secs
  @event_sourcing_code = event_sourcing_code 
end

Instance Method Details

#start!Object



11
12
13
14
15
16
17
# File 'lib/empipelines/periodic_event_source.rb', line 11

def start!
  event_sourcing_code = @event_sourcing_code

  @em.add_periodic_timer(@interval_in_secs) do
    tick!
  end
end

#tick!Object



19
20
21
22
23
# File 'lib/empipelines/periodic_event_source.rb', line 19

def tick!      
  event = @event_sourcing_code.call
  
  event!(Message.new(:payload => event, :origin => @name)) if event
end