Class: ServiceSkeleton::Runner

Inherits:
Object
  • Object
show all
Includes:
LoggingHelpers
Defined in:
lib/service_skeleton/runner.rb

Instance Method Summary collapse

Constructor Details

#initialize(klass, env) ⇒ Runner

Returns a new instance of Runner.



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/service_skeleton/runner.rb', line 19

def initialize(klass, env)
  @config = (klass.config_class || ServiceSkeleton::Config).new(env, klass.service_name, klass.registered_variables)
  @logger = @config.logger

  @metrics_registry = Prometheus::Client::Registry.new

  @ultravisor = ServiceSkeleton.generate(
    config: @config,
    metrics_registry: @metrics_registry,
    service_metrics: klass.registered_metrics,
    service_signal_handlers: { klass.service_name.to_sym => klass.registered_signal_handlers }
  )

  klass.register_ultravisor_children(@ultravisor, config: @config, metrics_registry: @metrics_registry)
end

Instance Method Details

#runObject



35
36
37
38
39
40
# File 'lib/service_skeleton/runner.rb', line 35

def run
  @config.pre_run_logger.info(logloc) { "Starting service #{@config.service_name}" }
  @config.pre_run_logger.info(logloc) { (["Environment:"] + @config.env.map { |k, v| "#{k}=#{v.inspect}" }).join("\n  ") }

  @ultravisor.run
end