Class: SlackRTMReceiver::Reactor

Inherits:
Object
  • Object
show all
Defined in:
lib/slack-rtm-receiver/reactor.rb

Class Method Summary collapse

Class Method Details

.run(opts) ⇒ Object

Start reactor

Parameters:

  • opts (Hash)

    options for Slack web API rtm.start



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/slack-rtm-receiver/reactor.rb', line 10

def self.run(opts)
  logger = SlackRTMReceiver.logger
  logger.warn "SlackRTMReceiver ver. #{Version} loaded, Reactor starting..."
  EM.run do
    session = Session.new
    starter = Starter.start(session, opts)

    # life check
    EM.add_periodic_timer(15) do
      session.alive? ? session.ping_if_idle : starter.start(session)
    end

    # statistics check
    EM.add_periodic_timer(3600) do
      session.stats({log: true}) if session.alive?
    end
  end
  logger.warn 'Reactor stopped'
end