class RFlow::Components::Clock
A clock. It ticks every n seconds. Get it?
Accepts config parameters:
-
name
- name of the clock, to disambiguate more than one -
tick_interval
- how long to wait between ticks
Emits {RFlow::Message}s whose internal type is {RFlow::Message::Clock::Tick}.
Constants
- DEFAULT_CONFIG
Default configuration.
Attributes
config[R]
@!visibility private
tick_interval[R]
@!visibility private
Public Instance Methods
clock_name()
click to toggle source
@!visibility private
# File lib/rflow/components/clock.rb, line 83 def clock_name; config['name']; end
configure!(config)
click to toggle source
RFlow-called method at startup. @param config [Hash] configuration from the RFlow
config file @return [void]
# File lib/rflow/components/clock.rb, line 77 def configure!(config) @config = DEFAULT_CONFIG.merge config @tick_interval = Float(@config['tick_interval']) end
run!()
click to toggle source
RFlow-called method at startup. @return [void]
# File lib/rflow/components/clock.rb, line 87 def run! @timer = EventMachine::PeriodicTimer.new(tick_interval) { tick } end
tick()
click to toggle source
@!visibility private
# File lib/rflow/components/clock.rb, line 92 def tick tick_port.send_message(RFlow::Message.new('RFlow::Message::Clock::Tick').tap do |m| m.data.name = clock_name m.data.timestamp = Integer(Time.now.to_f * 1000) # ms since epoch end) end