Class: SidekiqRunner::SidekiqConfiguration
- Inherits:
-
Object
- Object
- SidekiqRunner::SidekiqConfiguration
- Includes:
- Enumerable
- Defined in:
- lib/sidekiq-runner/sidekiq_configuration.rb
Constant Summary collapse
- RUNNER_ATTRIBUTES =
[:config_file]
Instance Attribute Summary collapse
-
#sidekiqs ⇒ Object
readonly
Returns the value of attribute sidekiqs.
Class Method Summary collapse
Instance Method Summary collapse
- #add_instance(name) {|| ... } ⇒ Object
- #each(&block) ⇒ Object
- #each_key(&block) ⇒ Object
- #empty? ⇒ Boolean
- #ensure_default_sidekiq! ⇒ Object
-
#initialize ⇒ SidekiqConfiguration
constructor
A new instance of SidekiqConfiguration.
- #merge_config_file! ⇒ Object
- #queue(name, weight = 1) ⇒ Object (also: #add_queue)
- #sane? ⇒ Boolean
Constructor Details
#initialize ⇒ SidekiqConfiguration
Returns a new instance of SidekiqConfiguration.
12 13 14 15 16 17 18 19 20 21 |
# File 'lib/sidekiq-runner/sidekiq_configuration.rb', line 12 def initialize @config_file = if defined?(Rails) File.join(Rails.root, 'config', 'sidekiq.yml') else File.join(Dir.pwd, 'config', 'sidekiq.yml') end @sidekiqs = {} end |
Instance Attribute Details
#sidekiqs ⇒ Object (readonly)
Returns the value of attribute sidekiqs.
10 11 12 |
# File 'lib/sidekiq-runner/sidekiq_configuration.rb', line 10 def sidekiqs @sidekiqs end |
Class Method Details
.default ⇒ Object
23 24 25 |
# File 'lib/sidekiq-runner/sidekiq_configuration.rb', line 23 def self.default @default ||= SidekiqConfiguration.new end |
.get ⇒ Object
27 28 29 30 31 32 |
# File 'lib/sidekiq-runner/sidekiq_configuration.rb', line 27 def self.get config = default.dup config.merge_config_file! config.sane? config end |
Instance Method Details
#add_instance(name) {|| ... } ⇒ Object
46 47 48 49 50 51 |
# File 'lib/sidekiq-runner/sidekiq_configuration.rb', line 46 def add_instance(name) fail "Sidekiq instance with the name '#{name}' already exists! No duplicates please." if @sidekiqs.key?(name) @sidekiqs[name] = SidekiqInstance.new(name) yield @sidekiqs[name] if block_given? end |
#each(&block) ⇒ Object
34 35 36 |
# File 'lib/sidekiq-runner/sidekiq_configuration.rb', line 34 def each(&block) @sidekiqs.each(&block) end |
#each_key(&block) ⇒ Object
38 39 40 |
# File 'lib/sidekiq-runner/sidekiq_configuration.rb', line 38 def each_key(&block) @sidekiqs.each_key(&block) end |
#empty? ⇒ Boolean
42 43 44 |
# File 'lib/sidekiq-runner/sidekiq_configuration.rb', line 42 def empty? @sidekiqs.empty? end |
#ensure_default_sidekiq! ⇒ Object
84 85 86 |
# File 'lib/sidekiq-runner/sidekiq_configuration.rb', line 84 def ensure_default_sidekiq! add_instance('sidekiq_default') if empty? end |
#merge_config_file! ⇒ Object
88 89 90 91 92 93 94 95 |
# File 'lib/sidekiq-runner/sidekiq_configuration.rb', line 88 def merge_config_file! sidekiqs_common_config = {} yml = File.exist?(config_file) ? YAML.load_file(config_file) : {} yml = Hash[yml.map { |k, v| [k.to_sym, v] }] @sidekiqs.each_value { |skiq| skiq.merge_config_file!(yml) } end |
#queue(name, weight = 1) ⇒ Object Also known as: add_queue
62 63 64 65 66 67 |
# File 'lib/sidekiq-runner/sidekiq_configuration.rb', line 62 def queue(name, weight = 1) fail 'Multiple Sidekiq instances defined and queue() outside of instance block called.' if @sidekiqs.size > 1 ensure_default_sidekiq! @sidekiqs.values.first.add_queue(name, weight) end |
#sane? ⇒ Boolean
97 98 99 100 101 102 103 |
# File 'lib/sidekiq-runner/sidekiq_configuration.rb', line 97 def sane? fail 'No sidekiq instances defined. Nothing to run.' if @sidekiqs.empty? fail 'Sidekiq instances with the same pidfile found.' if @sidekiqs.values.map(&:pidfile).uniq.size < @sidekiqs.size fail 'Sidekiq instances with the same logfile found.' if @sidekiqs.values.map(&:logfile).uniq.size < @sidekiqs.size @sidekiqs.each_value { |skiq| skiq.sane? } end |