Sha256: 61cbcb662dbfadd8fe74cd5626fa952f569aeadab15dcab9a9df2da305fce701
Contents?: true
Size: 1.83 KB
Versions: 1
Compression:
Stored size: 1.83 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 attr_reader :pid_file attr_reader :min_workers, :max_workers attr_reader :worker_start_procs, :worker_shutdown_procs attr_reader :worker_sleep_procs, :worker_wakeup_procs attr_reader :logger, :verbose_logging attr_reader :shutdown_timeout attr_reader :error_procs attr_reader :queue_redis_keys, :routes def initialize(args = nil) args ||= {} @name = args[:name] @process_label = args[:process_label] @pid_file = args[:pid_file] @min_workers = args[:min_workers] @max_workers = args[:max_workers] @worker_start_procs = args[:worker_start_procs] @worker_shutdown_procs = args[:worker_shutdown_procs] @worker_sleep_procs = args[:worker_sleep_procs] @worker_wakeup_procs = args[:worker_wakeup_procs] @logger = args[:logger] @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
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
qs-0.5.0 | lib/qs/daemon_data.rb |