Class: Daemon::Runner::Reactor
- Inherits:
-
Object
- Object
- Daemon::Runner::Reactor
- Defined in:
- lib/onapp/engine/runner/reactor.rb
Instance Method Summary (collapse)
- - (Object) call(env)
-
- (Reactor) initialize(app)
constructor
A new instance of Reactor.
Constructor Details
- (Reactor) initialize(app)
Returns a new instance of Reactor
8 9 10 |
# File 'lib/onapp/engine/runner/reactor.rb', line 8 def initialize(app) @app = app end |
Instance Method Details
- (Object) call(env)
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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/onapp/engine/runner/reactor.rb', line 12 def call(env) EM.epoll Daemon.logger.info "Setting amount of workers to: #{threadpool_size}" EventMachine.threadpool_size = threadpool_size Daemon::Utils::EM.run Daemon.start! $0 = env.process_name EM.add_periodic_timer(30) { $0 = env.process_name } EM.watch_file(Daemon.log_file, Daemon::Monitoring::FileWatcher, file_deleted: proc { Daemon.logger(true) }) EM.watch_file(Daemon.pid_file, Daemon::Monitoring::FileWatcher, file_deleted: proc { Daemon.logger.info("PID File has just been removed. Stopping Daemon.") env.stop_service.perform(false, false) }) Daemon::CommandsServer.start %w(QUIT INT).each do |sig| Daemon::Utils::Signal.trap(sig) do Daemon.logger.info("SIG#{sig} trapped") env.stop_service.perform(true) end end Daemon::Utils::Signal.trap('TERM') do Daemon.logger.info("SIGTERM trapped") env.stop_service.perform end sleep 5 while running? rescue Exception => ex Daemon.logger.log_exception(ex) raise ex ensure env.stop_service.perform(true) end |