Class: Daemon::MasterProcess::Listen

Inherits:
Object
  • Object
show all
Defined in:
lib/onapp/engine/master_process/middleware/listen.rb

Instance Method Summary (collapse)

Constructor Details

- (Listen) initialize(app = proc {})

Returns a new instance of Listen



6
7
8
# File 'lib/onapp/engine/master_process/middleware/listen.rb', line 6

def initialize(app = proc {})
  @app = app
end

Instance Method Details

- (Object) call(env, block = true)



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/onapp/engine/master_process/middleware/listen.rb', line 10

def call(env, block = true)
  env.start

  Daemon::Utils::Signal.trap(::Daemon::MasterProcess::START_SIGNAL) { env.start }

  Daemon::Utils::Signal.trap(::Daemon::MasterProcess::STOP_SIGNAL) { env.stop }

  Daemon.callbacks.on_stop_command { env.stop }

  Daemon.callbacks.on_start_command { env.start }

  Daemon.callbacks.on_reload_command do
    Daemon::CommandsServer.clients.each do |client|
      begin
        client.request('reload')
      rescue => ex
        env.logger.error("Can't send command #{ex.class}: #{ex.message}\n#{ex.backtrace.join("\n")}")
      end
    end
  end

  Daemon.management_commands.subscribe

  Daemon.callbacks.invoke_onapp_engine_up

  Daemon::Utils::EM.thread.join if block
end