Module: Sneakers

Extended by:
Sneakers
Included in:
Sneakers
Defined in:
lib/sneakers/cli.rb,
lib/sneakers.rb,
lib/sneakers.rb,
lib/sneakers/errors.rb,
lib/sneakers/runner.rb,
lib/sneakers/worker.rb,
lib/sneakers/spawner.rb,
lib/sneakers/version.rb,
lib/sneakers/publisher.rb,
lib/sneakers/workergroup.rb,
lib/sneakers/content_type.rb,
lib/sneakers/configuration.rb,
lib/sneakers/error_reporter.rb,
lib/sneakers/concerns/logging.rb,
lib/sneakers/concerns/metrics.rb,
lib/sneakers/handlers/oneshot.rb,
lib/sneakers/handlers/maxretry.rb,
lib/sneakers/middleware/config.rb,
lib/sneakers/metrics/null_metrics.rb,
lib/sneakers/metrics/statsd_metrics.rb,
lib/sneakers/metrics/logging_metrics.rb,
lib/sneakers/metrics/newrelic_metrics.rb,
lib/sneakers/support/production_formatter.rb

Overview

Defined Under Namespace

Modules: Concerns, ErrorReporter, Handlers, Metrics, Middleware, Support, Worker, WorkerGroup Classes: CLI, Configuration, ContentType, Publisher, Queue, Runner, RunnerConfig, Spawner, Utils

Constant Summary collapse

CONFIG =
Configuration.new
VERSION =
"2.12.0"

Instance Method Summary collapse

Instance Method Details

#clear! ⇒ Object



39
40
41
42
43
44
# File 'lib/sneakers.rb', line 39

def clear!
  CONFIG.clear
  @logger = nil
  @publisher = nil
  @configured = false
end

#configure(opts = {}) ⇒ Object



30
31
32
33
34
35
36
37
# 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| ... } ⇒ Object

Yields:

  • (_self)

Yield Parameters:

  • _self (Sneakers) —

    the object that the method was called on



77
78
79
# File 'lib/sneakers.rb', line 77

def configure_server
  yield self if server?
end

#configured? ⇒ Boolean

Returns:

  • (Boolean)


65
66
67
# File 'lib/sneakers.rb', line 65

def configured?
  @configured
end

#daemonize!(loglevel = Logger::INFO) ⇒ Object



46
47
48
49
50
51
# 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 ⇒ Object

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 https://github.com/mperham/sidekiq/blob/6ad6a3aa330deebd76c6cf0d353f66abd3bef93b/lib/sidekiq.rb#L165-L174



87
88
89
# File 'lib/sneakers.rb', line 87

def error_reporters
  CONFIG[:error_reporters]
end

#logger ⇒ Object



57
58
59
# File 'lib/sneakers.rb', line 57

def logger
  @logger
end

#logger=(logger) ⇒ Object



53
54
55
# File 'lib/sneakers.rb', line 53

def logger=(logger)
  @logger = logger
end

#middleware ⇒ Object



91
92
93
# File 'lib/sneakers.rb', line 91

def middleware
  @middleware ||= Sneakers::Middleware::Config
end

#publish(msg, routing) ⇒ Object



61
62
63
# File 'lib/sneakers.rb', line 61

def publish(msg, routing)
  @publisher.publish(msg, routing)
end

#server=(server) ⇒ Object



69
70
71
# File 'lib/sneakers.rb', line 69

def server=(server)
  @server = server
end

#server? ⇒ Boolean

Returns:

  • (Boolean)


73
74
75
# File 'lib/sneakers.rb', line 73

def server?
  @server
end