Method: DRbQS::MessageServer#send_status

Defined in:
lib/drbqs/message.rb

#send_status(calculating_task_id) ⇒ Object



73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# File 'lib/drbqs/message.rb', line 73

def send_status(calculating_task_id)
  s = ''
  @node_list.history.each do |node_id, events|
    if events.size == 0 || events.size > 2
      raise "Invalid history of nodes: #{events.inspect}"
    end
    connect = events[0]
    s << sprintf("%4d %s\t", node_id, connect[2])
    if disconnect = events[1]
      s << "disconnected: (#{time_to_string(connect[0])} - #{time_to_string(disconnect[0])})\n"
    else
      task_ids = calculating_task_id[node_id]
      s << "task: #{task_ids.map { |num| num.to_s }.join(', ')} (#{time_to_string(connect[0])})\n"
    end
  end
  begin
    @message.take([:status, nil], 0)
  rescue Rinda::RequestExpiredError
  end
  @message.write([:status, s])
end