class SidekiqRunner::SidekiqInstance
Constants
- CONFIG_FILE_ATTRIBUTES
- RUNNER_ATTRIBUTES
Attributes
config_blocks[R]
name[R]
queues[R]
Public Class Methods
new(name)
click to toggle source
# File lib/sidekiq-runner/sidekiq_instance.rb, line 11 def initialize(name) raise "No sidekiq instance name given!" if name.empty? @name = name @queues = [] @bundle_env = true @chdir = nil @requirefile = nil @pidfile = File.join(Dir.pwd, 'tmp', 'pids', "#{@name}.pid") @logfile = File.join(Dir.pwd, 'log', "#{@name}.log") @concurrency = 4 @verbose = false @tag = name @rbtrace = false @uid = nil @gid = nil @config_blocks = [] end
Public Instance Methods
add_queue(queue_name, weight = 1)
click to toggle source
# File lib/sidekiq-runner/sidekiq_instance.rb, line 31 def add_queue(queue_name, weight = 1) raise "Cannot add the queue. The name is empty!" if queue_name.empty? raise "Cannot add the queue. The weight is not an integer!" unless weight.is_a? Integer raise "Cannot add the queue. The queue with \"#{queue_name}\" name already exist" if @queues.any? { |q| q.first == queue_name } @queues << [queue_name, weight] end
build_start_command()
click to toggle source
# File lib/sidekiq-runner/sidekiq_instance.rb, line 64 def build_start_command create_directories! cmd = [] cmd << 'bundle exec' if bundle_env cmd << (rbtrace ? File.expand_path('../../script/sidekiq_rbtrace', __dir__) : 'sidekiq') cmd << "-c #{concurrency}" cmd << '-v' if verbose cmd << "-P #{pidfile}" cmd << "-e #{Rails.env}" if defined?(Rails) cmd << "-r #{requirefile}" if requirefile cmd << "-g '#{tag}'" queues.each do |q, w| cmd << "-q #{q},#{w}" end cmd.join(' ') end
god_config(&block)
click to toggle source
# File lib/sidekiq-runner/sidekiq_instance.rb, line 39 def god_config(&block) @config_blocks << block end
merge_config_file!(yml)
click to toggle source
# File lib/sidekiq-runner/sidekiq_instance.rb, line 43 def merge_config_file!(yml) # Get global configuration options. SidekiqInstance::CONFIG_FILE_ATTRIBUTES.each do |k| send("#{k}=", yml[k]) unless yml[k].nil? end # Override with instance-specific options. if (syml = yml[@name.to_sym]) && syml.is_a?(Hash) syml = Hash[syml.map { |k, v| [k.to_sym, v] }] SidekiqInstance::CONFIG_FILE_ATTRIBUTES.each do |k| send("#{k}=", syml[k]) unless syml[k].nil? end end end
sane?()
click to toggle source
# File lib/sidekiq-runner/sidekiq_instance.rb, line 59 def sane? raise "No queues given for #{@name}!" if @queues.empty? raise "No requirefile given for #{@name} and not in Rails environment!" if !defined?(Rails) && !requirefile end
Private Instance Methods
create_directories!()
click to toggle source
# File lib/sidekiq-runner/sidekiq_instance.rb, line 86 def create_directories! FileUtils.mkdir_p(File.dirname(logfile)) FileUtils.mkdir_p(File.dirname(pidfile)) end