Class: Liquid::Server

Inherits:
Object
  • Object
show all
Defined in:
lib/liquid/server.rb

Instance Method Summary collapse

Constructor Details

#initializeServer

Returns a new instance of Server.



6
7
8
9
10
11
12
# File 'lib/liquid/server.rb', line 6

def initialize
  $log.info("#{self.class.name.downcase} #{RUBY_DESCRIPTION}")
  $log.info("#{self.class.name.downcase}", env: Env.mode)
  initialize_raven
  initialize_tracker
  initialize_metrics
end

Instance Method Details

#initialize_metricsObject



40
41
42
43
44
# File 'lib/liquid/server.rb', line 40

def initialize_metrics
  ::Metrics.start
  ::Metrics::TrackerReporter.new($tracker.with_topic('metrics'))
  Signal.register_shutdown_handler { ::Metrics.stop }
end

#initialize_ravenObject



14
15
16
17
18
19
20
21
22
23
24
# File 'lib/liquid/server.rb', line 14

def initialize_raven
  return unless $conf.raven
  require 'raven'
  Raven.configure do |config|
    config.dsn = $conf.raven.dsn
    config.logger = $log
  end
  $log.add_exception_handler do |exc, message, attribs|
    Raven.capture_exception(exc)
  end
end

#initialize_trackerObject



26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/liquid/server.rb', line 26

def initialize_tracker
  if $conf.tracker.kafka.enabled
    # http://kafka.apache.org/documentation.html#producerconfigs
    properties = java.util.Properties.new
    properties['metadata.broker.list'] = $conf.tracker.kafka.brokers.join(',')
    properties['producer.type'] = 'async'
    properties['serializer.class'] = 'kafka.serializer.StringEncoder'
    $tracker = ::Tracker::KafkaTracker.new(properties, $conf.tracker.dimensions)
  else
    $tracker = ::Tracker::LoggerTracker.new($conf.tracker.dimensions)
  end
  Signal.register_shutdown_handler { $tracker.shutdown }
end

#initialize_zmachineObject



46
47
48
49
50
51
52
# File 'lib/liquid/server.rb', line 46

def initialize_zmachine
  require 'zmachine'
  ZMachine.logger = $log
  ZMachine.debug = true if $conf.zmachine.debug
  ZMachine.heartbeat_interval = 0.1
  Signal.register_shutdown_handler { ZMachine.stop }
end

#runObject



54
55
56
57
# File 'lib/liquid/server.rb', line 54

def run
  # by default wait for all workers
  Thread.join
end