Sha256: 00df227472c3cb4470c3cc1d5d4375048128bea00b94d41779afa7809cb46211
Contents?: true
Size: 1.61 KB
Versions: 2
Compression:
Stored size: 1.61 KB
Contents
module Qs class DaemonData # 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. attr_reader :name, :process_label, :pid_file attr_reader :worker_class, :worker_params, :num_workers attr_reader :debug, :logger, :dwp_logger, :verbose_logging attr_reader :shutdown_timeout attr_reader :error_procs, :queue_redis_keys, :routes 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 def route_for(route_id) @routes[route_id] || raise(NotFoundError, "unknown message '#{route_id}'") end private def build_routes(routes) routes.inject({}){ |h, route| h.merge(route.id => route) } end end NotFoundError = Class.new(RuntimeError) end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
qs-0.6.1 | lib/qs/daemon_data.rb |
qs-0.6.0 | lib/qs/daemon_data.rb |