Sha256: b47986885e1661c106920d5e0e86cb095e0f585cb12d66666e927e11ebd9ba69
Contents?: true
Size: 1.77 KB
Versions: 1
Compression:
Stored size: 1.77 KB
Contents
module DRbQS class Manage class SendSignal MAX_WAIT_TIME = 10 def initialize(message) @message = message end def sender_id "#{Socket.gethostname}/#{Process.pid}" end def send_signal_to_server(signal, arg) @message.write([:server, signal, arg]) end private :send_signal_to_server def send_exit_signal send_signal_to_server(:exit_server, sender_id) end def send_node_exit_after_task(node_id) send_signal_to_server(:exit_after_task, node_id) end def send_node_wake(node_id) send_signal_to_server(:wake_node, node_id) end def send_node_sleep(node_id) send_signal_to_server(:sleep_node, node_id) end def send_data(data) send_signal_to_server(:new_data, data) end def wait_response(message_cond) i = 0 loop do begin return @message.take(message_cond, 0) rescue Rinda::RequestExpiredError i += 1 if i > MAX_WAIT_TIME return nil end sleep(1) end end end private :wait_response def get_status send_signal_to_server(:request_status, sender_id) if mes = wait_response([:status, String]) return mes[1] end nil end def get_history send_signal_to_server(:request_history, sender_id) if mes = wait_response([:history, String]) return mes[1] end nil end def get_response send_signal_to_server(:request_response, [sender_id, Time.now]) if mes = wait_response([:response, sender_id, nil]) return true end nil end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
drbqs-0.1.1 | lib/drbqs/manage/send_signal.rb |