class Rub2::JobResultCollector

Public Class Methods

new(uri, timeout, job_count) click to toggle source
# File lib/rub2.rb, line 277
def initialize(uri, timeout, job_count)
  @drb = DRbObject.new_with_uri(uri)
  @pid = Process.pid
  @timeout = timeout
  @job_count = job_count
  @success_count = 0
end

Public Instance Methods

collect_job_result(job_store) click to toggle source

block thread

# File lib/rub2.rb, line 286
def collect_job_result(job_store)
  _pid, job_id, array_id, host, exit_code, start_time, exit_time = @drb.take([@pid, nil, nil, nil, nil, nil, nil], @timeout)
  job_store.update_exit_code([{:array_id => array_id, :exit_code => exit_code}])
  @success_count += 1 if exit_code == 0
  t = Time.at(exit_time) - Time.at(start_time)
  min, sec = t.divmod(60)
  Rub2.putlog "#{job_id}(#{host}) => #{exit_code}\t[#{min}m#{sec.truncate}s]\t(#{@success_count}/#{@job_count})"
end