Class: Core::Server

Inherits:
Object show all
Includes:
Singleton
Defined in:
lib/svcbase/server.rb

Overview

actual server manager

Constant Summary collapse

ID =
Core::Random.short_id.freeze

Instance Method Summary collapse

Instance Method Details

#register_worker(klass) ⇒ Object



21
22
23
24
# File 'lib/svcbase/server.rb', line 21

def register_worker(klass)
  log.info('server') { "Registered server worker #{klass}" }
  @workers << klass
end

#startObject



42
43
44
45
46
47
48
# File 'lib/svcbase/server.rb', line 42

def start
  log.info('server') { "Server #{ID} starting" }
  log.info('server') { "Commit: #{Core::Version::ID}" }
  log.info('server') { "Tag: #{Core::Version::TAG}" }

  start_workers
end

#start_workersObject



26
27
28
29
30
31
32
# File 'lib/svcbase/server.rb', line 26

def start_workers
  @workers.each do |inst|
    inst.worker_start
  rescue StandardError => e
    log.fatal('server') { ["ERROR in worker #{inst}", e] }
  end
end

#stopObject



50
51
52
53
54
55
56
# File 'lib/svcbase/server.rb', line 50

def stop
  log.info('server') { "Server #{ID} stopping" }

  stop_workers

  log.info('server') { "Server #{ID} stopped" }
end

#stop_workersObject



34
35
36
37
38
39
40
# File 'lib/svcbase/server.rb', line 34

def stop_workers
  @workers.each do |inst|
    inst.worker_stop
  rescue StandardError => e
    log.fatal('server') { ["ERROR in worker #{inst}", e] }
  end
end