class Kuroko2::Execution
def self.poll(queue = DEFAULT_QUEUE)
def self.poll(queue = DEFAULT_QUEUE) self.transaction do unstarted.with(queue).lock.take.tap do |execution| execution.touch(:started_at) if execution end end end
def completed?
def completed? started_at? && finished_at? end
def finish(output:, exit_status:)
def finish(output:, exit_status:) update!(output: output, exit_status: exit_status, finished_at: Time.current) job_definition.memory_expectancy.calculate! end
def finish_by_signal(output:, term_signal:)
def finish_by_signal(output:, term_signal:) update!(output: output, term_signal: term_signal, finished_at: Time.current) job_definition.memory_expectancy.calculate! end
def set_default_values
def set_default_values self.uuid ||= SecureRandom.uuid self.context ||= {} end
def success?
def success? exit_status == 0 end