class Rub2::JobStore

Public Class Methods

new() click to toggle source
# File lib/rub2.rb, line 190
def initialize
  @jobs = nil
end

Public Instance Methods

all_finish?() click to toggle source
# File lib/rub2.rb, line 233
def all_finish?
  return @jobs.all? {|j| j.finished?}
end
each_job() { |job| ... } click to toggle source
# File lib/rub2.rb, line 227
def each_job(&block)
  @jobs.each do |job|
    yield job
  end
end
get_job_from_index(index) click to toggle source
# File lib/rub2.rb, line 203
def get_job_from_index(index)
  return @jobs.find {|j| j.array_id == index}
end
init_job(job_id, job_index, max_retry) click to toggle source
# File lib/rub2.rb, line 194
def init_job(job_id, job_index, max_retry)
  raise "already initialized" unless @jobs.nil?
  jobs = []
  job_index.each do |index|
    jobs.push(Job.new(job_id, index, max_retry))
  end
  @jobs = jobs
end
job_count() click to toggle source
# File lib/rub2.rb, line 241
def job_count
  return @jobs.size
end
mark_dead_job(jobs) click to toggle source
# File lib/rub2.rb, line 215
def mark_dead_job(jobs)
  now = Time.now
  jobs.each do |job|
    if job.dead_end?(now)
      job.set_exit_code(-1)
      Rub2.putlog("#{job} no response 1min after finished.")
    else
      job.set_dead_time(now)
    end
  end
end
select_retry_jobs() click to toggle source
# File lib/rub2.rb, line 237
def select_retry_jobs
  return @jobs.select {|job| job.need_retry?}
end
update_exit_code(exit_status) click to toggle source

exit_status: [ {:array_id => 1, :exit_code => 1}, …]

# File lib/rub2.rb, line 208
def update_exit_code(exit_status)
  exit_status.each do |es|
    job = get_job_from_index(es[:array_id])
    job.set_exit_code(es[:exit_code])
  end
end