class Rub2::Job

Attributes

array_id[R]
died_at[R]
exit_code[R]
parent_id[R]

Public Class Methods

new(parent_id, array_id, max_retry) click to toggle source
# File lib/rub2.rb, line 125
def initialize(parent_id, array_id, max_retry)
  @parent_id = parent_id
  @array_id = array_id
  @max_retry = max_retry
  raise "negative max_retry" if max_retry < 0
  @exit_code = nil
  @retry_count = 0
  @died_at = nil
end

Public Instance Methods

dead_end?(t) click to toggle source
# File lib/rub2.rb, line 162
def dead_end?(t)
  return false if @died_at.nil?
  return (t - @died_at) > 60.0 # daed job, maybe
end
finished?() click to toggle source
# File lib/rub2.rb, line 135
def finished?
  return false if @exit_code.nil?
  return (not need_retry?)
end
inspect() click to toggle source
# File lib/rub2.rb, line 178
def inspect
  "#<Job: @parent_id=#{@parent_id}, @array_id=#{@array_id}, @exit_code=#{@exit_code}, @retry_count=#{@retry_count}, @max_retry=#{@max_retry}, @died_at=#{@died_at}>"
end
job_id() click to toggle source
# File lib/rub2.rb, line 150
def job_id
  return "#{@parent_id}[#{@array_id}]"
end
need_retry?() click to toggle source
# File lib/rub2.rb, line 144
def need_retry?
  return false if @exit_code.nil?
  return false if succeeded?
  return @retry_count < @max_retry
end
set_dead_time(t) click to toggle source
# File lib/rub2.rb, line 167
def set_dead_time(t)
  @died_at = t
end
set_exit_code(exit_code) click to toggle source
# File lib/rub2.rb, line 154
def set_exit_code(exit_code)
  unless @exit_code.nil?
    Rub2.putlog("warn: already assigned exit_code #{self} #{@exit_code} -> #{exit_code}")
  end
  @exit_code = exit_code
  @died_at = nil
end
set_resubmit_id(new_parent_id) click to toggle source
# File lib/rub2.rb, line 171
def set_resubmit_id(new_parent_id)
  @parent_id = new_parent_id
  @exit_code = nil
  @died_at = nil
  @retry_count += 1
end
succeeded?() click to toggle source
# File lib/rub2.rb, line 140
def succeeded?
  return @exit_code == 0
end
to_s() click to toggle source
# File lib/rub2.rb, line 182
def to_s
  return job_id
end