class DRbQS::Setting::Node
Constants
- LOG_PREFIX_DEFAULT
Public Class Methods
new()
click to toggle source
Calls superclass method
DRbQS::Setting::Base::new
# File lib/drbqs/setting/node.rb, line 6 def initialize super(:all_keys_defined => true, :log_level => true, :daemon => true) do register_key(:load, :check => [:>, 0], :add => true) register_key(:process, :check => 1, :default => [1]) register_key(:group, :add => true) register_key(:loadavg, :check => 1) register_key(:log_prefix, :check => 1, :default => [LOG_PREFIX_DEFAULT]) register_key(:log_stdout, :bool => true) register_key(:connect, :check => 1) set_argument_condition(:==, 1) end end
Public Instance Methods
exec(io = nil)
click to toggle source
# File lib/drbqs/setting/node.rb, line 71 def exec(io = nil) if @__daemon__ fork do exec_as_daemon end return true end @options[:load].each do |path| io.puts "load #{path}" if io unless File.exist?(path) raise DRbQS::Setting::InvalidArgument, "#{path} does not exist." end load path end if io io.puts "PID: #{Process.pid}" io.puts "Connect to #{@uri}" io.puts "Execute #{@process_num} processes" end exec_node = DRbQS::Execution::ExecuteNode.new(@uri, @options[:log_prefix], @options[:log_level], @options[:node_opts]) exec_node.execute(@process_num) true end
parse!()
click to toggle source
If there are invalid arguments, this method raises an error.
Calls superclass method
DRbQS::Setting::Base#parse!
# File lib/drbqs/setting/node.rb, line 29 def parse! super parse_load parse_group parse_loadavg if !get(:log_stdout) @options[:log_prefix] = get_first(:log_prefix) do |val| str = val.to_s str += 'out' if /\/$/ =~ str str end end @process_num = get_first(:process) @uri = get_argument[0] end
Private Instance Methods
parse_group()
click to toggle source
# File lib/drbqs/setting/node.rb, line 63 def parse_group if args = get(:group) @options[:node_opts] ||= {} @options[:node_opts][:group] = args.map { |a| a.intern } end end
parse_load()
click to toggle source
# File lib/drbqs/setting/node.rb, line 45 def parse_load @options[:load] = [] get(:load).to_a.each do |path| @options[:load] << File.expand_path(path) end end
parse_loadavg()
click to toggle source
# File lib/drbqs/setting/node.rb, line 53 def parse_loadavg @options[:node_opts] ||= {} if args = get(:loadavg) max_loadavg, sleep_time = args[0].split(':', -1) @options[:node_opts][:max_loadavg] = max_loadavg && max_loadavg.size > 0 ? max_loadavg.to_f : nil @options[:node_opts][:sleep_time] = sleep_time && sleep_time.size > 0 ? sleep_time.to_i : nil end end
preprocess!()
click to toggle source
# File lib/drbqs/setting/node.rb, line 19 def preprocess! if connect = get_first(:connect) value.argument.unshift(connect) clear(:connect) end end