Module: ActionSubscriber::Babou

Defined in:
lib/action_subscriber/babou.rb

Class Method Summary collapse

Class Method Details

.loggerObject



20
21
22
# File 'lib/action_subscriber/babou.rb', line 20

def self.logger
  ::ActionSubscriber::Logging.logger
end

.reload_active_recordObject



24
25
26
27
28
# File 'lib/action_subscriber/babou.rb', line 24

def self.reload_active_record
  if defined?(::ActiveRecord::Base) && !::ActiveRecord::Base.connected?
    ::ActiveRecord::Base.establish_connection
  end
end

.shutting_down?Boolean

Returns:

  • (Boolean)


30
31
32
# File 'lib/action_subscriber/babou.rb', line 30

def self.shutting_down?
  !!@shutting_down
end

.start_subscribersObject

Class Methods



6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/action_subscriber/babou.rb', line 6

def self.start_subscribers
  reload_active_record
  ::ActionSubscriber.setup_default_connection!
  ::ActionSubscriber.setup_subscriptions!
  ::ActionSubscriber.print_subscriptions
  ::ActionSubscriber.start_subscribers!
  logger.info "Action Subscriber connected"

  while true
    sleep 1.0 #just hang around waiting for messages
    break if shutting_down?
  end
end

.stop_server!Object



34
35
36
37
38
39
40
41
42
43
# File 'lib/action_subscriber/babou.rb', line 34

def self.stop_server!
  # this method is called from within a TRAP context so we can't use the logger
  @shutting_down = true
  ::Thread.new do
    puts "Stopping subscribers..."
    ::ActionSubscriber.stop_subscribers!
    puts "Shutting down"
    ::ActionSubscriber::RabbitConnection.subscriber_disconnect!
  end.join
end