module Sneakers

$ sneakers run TitleWorker,FooWorker $ sneakers stop $ sneakers recycle $ sneakers reload $ sneakers init

Ripped off from github.com/mperham/sidekiq/blob/master/lib/sidekiq/exception_handler.rb

Constants

CONFIG
VERSION

Public Instance Methods

clear!() click to toggle source
# File lib/sneakers.rb, line 39
def clear!
  CONFIG.clear
  @logger = nil
  @publisher = nil
  @configured = false
end
configure(opts={}) click to toggle source
# File lib/sneakers.rb, line 30
def configure(opts={})
  # worker > userland > defaults
  CONFIG.merge!(opts)
  setup_general_logger!
  setup_worker_concerns!
  setup_general_publisher!
  @configured = true
end
configure_server() { |self| ... } click to toggle source
# File lib/sneakers.rb, line 77
def configure_server
  yield self if server?
end
configured?() click to toggle source
# File lib/sneakers.rb, line 65
def configured?
  @configured
end
daemonize!(loglevel=Logger::INFO) click to toggle source
# File lib/sneakers.rb, line 46
def daemonize!(loglevel=Logger::INFO)
  CONFIG[:log] = 'sneakers.log'
  CONFIG[:daemonize] = true
  setup_general_logger!
  logger.level = loglevel
end
error_reporters() click to toggle source

Register a proc to handle any error which occurs within the Sneakers process.

Sneakers.error_reporters << proc { |exception, worker, context_hash| MyErrorService.notify(exception, context_hash) }

The default error handler logs errors to Sneakers.logger. Ripped off from github.com/mperham/sidekiq/blob/6ad6a3aa330deebd76c6cf0d353f66abd3bef93b/lib/sidekiq.rb#L165-L174

# File lib/sneakers.rb, line 87
def error_reporters
  CONFIG[:error_reporters]
end
logger() click to toggle source
# File lib/sneakers.rb, line 57
def logger
  @logger
end
logger=(logger) click to toggle source
# File lib/sneakers.rb, line 53
def logger=(logger)
  @logger = logger
end
middleware() click to toggle source
# File lib/sneakers.rb, line 91
def middleware
  @middleware ||= Sneakers::Middleware::Config
end
publish(msg, routing) click to toggle source
# File lib/sneakers.rb, line 61
def publish(msg, routing)
  @publisher.publish(msg, routing)
end
server=(server) click to toggle source
# File lib/sneakers.rb, line 69
def server=(server)
  @server = server
end
server?() click to toggle source
# File lib/sneakers.rb, line 73
def server?
  @server
end

Private Instance Methods

setup_general_logger!() click to toggle source
# File lib/sneakers.rb, line 97
def setup_general_logger!
  if [:info, :debug, :error, :warn].all?{ |meth| CONFIG[:log].respond_to?(meth) }
    @logger = CONFIG[:log]
  else
    @logger = ServerEngine::DaemonLogger.new(CONFIG[:log])
    @logger.formatter = Sneakers::Support::ProductionFormatter
  end
end
setup_general_publisher!() click to toggle source
# File lib/sneakers.rb, line 112
def setup_general_publisher!
  @publisher = Sneakers::Publisher.new
end
setup_worker_concerns!() click to toggle source
# File lib/sneakers.rb, line 106
def setup_worker_concerns!
  Worker.configure_logger(Sneakers::logger)
  Worker.configure_metrics(CONFIG[:metrics])
  CONFIG[:handler] ||= Sneakers::Handlers::Oneshot
end