Class: Refinery::Server

Inherits:
Object
  • Object
show all
Includes:
Configurable, Loggable, Queueable, Utilities
Defined in:
lib/refinery/server.rb

Overview

The server instance provides a runtime environment for daemons. To start the server create an Refinery::Server instance and invoke run.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Utilities

#camelize, #decode_message, #encode_message, #host_info

Methods included from Queueable

#queue, #with_queue

Methods included from Configurable

#config, #config=

Methods included from Loggable

#logger

Constructor Details

#initialize(options = {}) ⇒ Server

Initialize the server.

Options:

  • :config: Provide a file path to load that config

  • :debug: Set to true to enable debug logging

  • :verbose: Set to true to enable info logging

  • :workers: The workers directory



31
32
33
34
35
36
# File 'lib/refinery/server.rb', line 31

def initialize(options={})
  logger.level = Logger::INFO if options[:verbose]
  logger.level = Logger::DEBUG if options[:debug]
  config.load_file(options[:config]) if options[:config]
  self.workers_directory = options[:workers] if options[:workers]
end

Instance Attribute Details

#workers_directoryObject

The directory where workers are found. Defaults to ./workers



12
13
14
# File 'lib/refinery/server.rb', line 12

def workers_directory
  @workers_directory
end

Class Method Details

.loggerObject

Get a server-wide logger



15
16
17
18
19
20
21
22
# File 'lib/refinery/server.rb', line 15

def self.logger
  @logger ||= begin
    logger = Logger.new(STDOUT)
    logger.level = Logger::WARN
    logger.formatter = CustomFormatter.new
    logger
  end
end

Instance Method Details

#daemonsObject

An array of all daemons



50
51
52
# File 'lib/refinery/server.rb', line 50

def daemons
  @daemons ||= []
end

#runObject

Run the server



55
56
57
58
59
# File 'lib/refinery/server.rb', line 55

def run
  logger.info "Starting Refinery server"
  execute_processors
  logger.info "Server is exiting"
end

#stopObject

Stop the server



44
45
46
47
# File 'lib/refinery/server.rb', line 44

def stop
  logger.info "Stopping Refinery Server"
  daemons.each { |daemon| daemon.stop }
end