class DRbQS::ProcessList::Node

Public Instance Methods

clear_process_not_exist() click to toggle source
# File lib/drbqs/config/process_list.rb, line 163
def clear_process_not_exist
  server = Hash.new do |h, k|
    h[k] = Array.new
  end
  list.each do |pid, data|
    if DRbQS::Misc.process_running_normally?(pid)
      server[data[:uri]] << pid
    else
      delete(pid)
    end
  end
  server.each do |server_uri, pid_ary|
    unless DRbQS::Manage.new(:uri => server_uri).server_respond?
      pid_ary.each do |pid|
        delete(pid)
      end
    end
  end
end
delete(pid) click to toggle source
# File lib/drbqs/config/process_list.rb, line 159
def delete(pid)
  delete_file(pid_to_file(pid))
end
get(pid) click to toggle source
# File lib/drbqs/config/process_list.rb, line 155
def get(pid)
  load_file(pid_to_file(pid))
end
list() click to toggle source
# File lib/drbqs/config/process_list.rb, line 139
def list
  h = {}
  entries.each do |file|
    h[file_to_pid(file)] = load_file(file)
  end
  h
end
save(pid, data) click to toggle source

If file exists then this method overwrites the file.

# File lib/drbqs/config/process_list.rb, line 148
def save(pid, data)
  unless save_file(pid_to_file(pid), data)
    delete(pid)
    save(pid, data)
  end
end

Private Instance Methods

file_to_pid(file) click to toggle source
# File lib/drbqs/config/process_list.rb, line 134
def file_to_pid(file)
  file.sub(/\.yaml$/, '').to_i
end
pid_to_file(pid) click to toggle source
# File lib/drbqs/config/process_list.rb, line 129
def pid_to_file(pid)
  sprintf("%010d.yaml", pid)
end