class DRbQS::Node::Connection
The class of connection to server.
Attributes
id[R]
node_number[R]
Public Class Methods
new(message, logger = DRbQS::Misc::LoggerDummy.new)
click to toggle source
# File lib/drbqs/node/connection.rb, line 7 def initialize(message, logger = DRbQS::Misc::LoggerDummy.new) @message = message @logger = logger @node_number = nil @id = create_id_string end
Public Instance Methods
get_finalization()
click to toggle source
# File lib/drbqs/node/connection.rb, line 41 def get_finalization get_special_task(:finalize) end
get_initialization()
click to toggle source
# File lib/drbqs/node/connection.rb, line 37 def get_initialization get_special_task(:initialize) end
respond_signal()
click to toggle source
# File lib/drbqs/node/connection.rb, line 45 def respond_signal begin node_id, sym = @message.take([@node_number, Symbol], 0) @logger.info("Get signal: #{sym.inspect}") case sym when :alive_p @message.write([:server, :alive, @node_number]) @logger.info("Send alive signal of node id #{@node_number}") when :exit, :finalize, :exit_after_task, :sleep, :wake return sym else raise "Get invalid signal: #{sym.inspect}" end rescue Rinda::RequestExpiredError end end
send_node_error(error_message)
click to toggle source
# File lib/drbqs/node/connection.rb, line 62 def send_node_error(error_message) @message.write([:server, :node_error, [@node_number, error_message]]) end
Private Instance Methods
create_id_string()
click to toggle source
# File lib/drbqs/node/connection.rb, line 14 def create_id_string "#{Socket.gethostname}:#{Process.pid}:#{Time.now.strftime('%s')}" end
get_special_task(label)
click to toggle source
# File lib/drbqs/node/connection.rb, line 28 def get_special_task(label) begin @message.read([label, Array], 0)[1] rescue Rinda::RequestExpiredError nil end end