Class: Qs::DaemonData

Inherits:
Object
  • Object
show all
Defined in:
lib/qs/daemon_data.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(args = nil) ⇒ DaemonData

Returns a new instance of DaemonData.



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/qs/daemon_data.rb', line 16

def initialize(args = nil)
  args ||= {}
  @name          = args[:name]
  @process_label = !(v = ENV['QS_PROCESS_LABEL'].to_s).empty? ? v : args[:name]
  @pid_file      = args[:pid_file]

  @worker_class  = args[:worker_class]
  @worker_params = args[:worker_params] || {}
  @num_workers   = args[:num_workers]

  @debug           = !ENV['QS_DEBUG'].to_s.empty?
  @logger          = args[:logger]
  @dwp_logger      = @logger if @debug
  @verbose_logging = !!args[:verbose_logging]

  @shutdown_timeout = args[:shutdown_timeout]

  @error_procs      = args[:error_procs] || []
  @queue_redis_keys = args[:queue_redis_keys] || []
  @routes           = build_routes(args[:routes] || [])
end

Instance Attribute Details

#debugObject (readonly)

Returns the value of attribute debug.



12
13
14
# File 'lib/qs/daemon_data.rb', line 12

def debug
  @debug
end

#dwp_loggerObject (readonly)

Returns the value of attribute dwp_logger.



12
13
14
# File 'lib/qs/daemon_data.rb', line 12

def dwp_logger
  @dwp_logger
end

#error_procsObject (readonly)

Returns the value of attribute error_procs.



14
15
16
# File 'lib/qs/daemon_data.rb', line 14

def error_procs
  @error_procs
end

#loggerObject (readonly)

Returns the value of attribute logger.



12
13
14
# File 'lib/qs/daemon_data.rb', line 12

def logger
  @logger
end

#nameObject (readonly)

The daemon uses this to “compile” its configuration for speed. NsOptions is relatively slow everytime an option is read. To avoid this, we read the options one time here and memoize their values. This way, we don’t pay the NsOptions overhead when reading them while handling a message.



10
11
12
# File 'lib/qs/daemon_data.rb', line 10

def name
  @name
end

#num_workersObject (readonly)

Returns the value of attribute num_workers.



11
12
13
# File 'lib/qs/daemon_data.rb', line 11

def num_workers
  @num_workers
end

#pid_fileObject (readonly)

The daemon uses this to “compile” its configuration for speed. NsOptions is relatively slow everytime an option is read. To avoid this, we read the options one time here and memoize their values. This way, we don’t pay the NsOptions overhead when reading them while handling a message.



10
11
12
# File 'lib/qs/daemon_data.rb', line 10

def pid_file
  @pid_file
end

#process_labelObject (readonly)

The daemon uses this to “compile” its configuration for speed. NsOptions is relatively slow everytime an option is read. To avoid this, we read the options one time here and memoize their values. This way, we don’t pay the NsOptions overhead when reading them while handling a message.



10
11
12
# File 'lib/qs/daemon_data.rb', line 10

def process_label
  @process_label
end

#queue_redis_keysObject (readonly)

Returns the value of attribute queue_redis_keys.



14
15
16
# File 'lib/qs/daemon_data.rb', line 14

def queue_redis_keys
  @queue_redis_keys
end

#routesObject (readonly)

Returns the value of attribute routes.



14
15
16
# File 'lib/qs/daemon_data.rb', line 14

def routes
  @routes
end

#shutdown_timeoutObject (readonly)

Returns the value of attribute shutdown_timeout.



13
14
15
# File 'lib/qs/daemon_data.rb', line 13

def shutdown_timeout
  @shutdown_timeout
end

#verbose_loggingObject (readonly)

Returns the value of attribute verbose_logging.



12
13
14
# File 'lib/qs/daemon_data.rb', line 12

def verbose_logging
  @verbose_logging
end

#worker_classObject (readonly)

Returns the value of attribute worker_class.



11
12
13
# File 'lib/qs/daemon_data.rb', line 11

def worker_class
  @worker_class
end

#worker_paramsObject (readonly)

Returns the value of attribute worker_params.



11
12
13
# File 'lib/qs/daemon_data.rb', line 11

def worker_params
  @worker_params
end

Instance Method Details

#route_for(route_id) ⇒ Object



38
39
40
# File 'lib/qs/daemon_data.rb', line 38

def route_for(route_id)
  @routes[route_id] || raise(NotFoundError, "unknown message '#{route_id}'")
end