class SidekiqRunner::GodConfiguration

Constants

CONFIG_FILE_ATTRIBUTES
RUNNER_ATTRIBUTES

Attributes

generic_watchers[R]

Public Class Methods

default() click to toggle source
# File lib/sidekiq-runner/god_configuration.rb, line 5
def self.default
  @default ||= GodConfiguration.new
end
get() click to toggle source
# File lib/sidekiq-runner/god_configuration.rb, line 9
def self.get
  config = default.dup
  config.merge_config_file!
  config
end
new() click to toggle source
# File lib/sidekiq-runner/god_configuration.rb, line 23
def initialize
  @process_name = 'sidekiq'
  @interval  = 30
  @stop_timeout = 30
  @maximum_memory_usage = nil

  @log_file   = File.join(Dir.pwd, 'log', 'god.log')
  @config_file  = File.join(Dir.pwd, 'config', 'god.yml')

  @daemonize = true
  @syslog = true
  @events = true
  @pid = nil
  @log_level = :warn

  # This is going to be a part of the .sock file name e.g. "/tmp/god.17165.sock" and the pidfile name
  # Change this in the configuration file to be able to run multiple instances of god.
  @port = 17165

  @generic_watchers = []
end

Public Instance Methods

add_generic(&blk) click to toggle source
# File lib/sidekiq-runner/god_configuration.rb, line 45
def add_generic(&blk)
  @generic_watchers << blk
end
create_directories!() click to toggle source
# File lib/sidekiq-runner/god_configuration.rb, line 74
def create_directories!
  FileUtils.mkdir_p(File.dirname(log_file)) if log_file
end
merge_config_file!() click to toggle source
# File lib/sidekiq-runner/god_configuration.rb, line 64
def merge_config_file!
  if File.exist?(config_file)
    yml = YAML.load_file(config_file)
    CONFIG_FILE_ATTRIBUTES.each do |k|
      v = yml[k] || yml[k.to_s]
      send("#{k}=", v) unless v.nil?
    end
  end
end
options() click to toggle source
# File lib/sidekiq-runner/god_configuration.rb, line 49
def options
  create_directories!

  {
    daemonize: @daemonize,
    port: @port,
    syslog: @syslog,
    events: @events,
    config: File.expand_path("../sidekiq.god", __FILE__),
    log: @log_file,
    pid: @pid,
    log_level: @log_level
  }
end