Class: Kuroko2::Execution

Inherits:
ApplicationRecord show all
Includes:
TableNameCustomizable
Defined in:
app/models/kuroko2/execution.rb

Constant Summary collapse

DEFAULT_QUEUE =
'@default'

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.poll(queue = DEFAULT_QUEUE) ⇒ Object



31
32
33
34
35
36
37
# File 'app/models/kuroko2/execution.rb', line 31

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

Instance Method Details

#completed?Boolean

Returns:

  • (Boolean)


23
24
25
# File 'app/models/kuroko2/execution.rb', line 23

def completed?
  started_at? && finished_at?
end

#finish(output:, exit_status:) ⇒ Object



39
40
41
42
# File 'app/models/kuroko2/execution.rb', line 39

def finish(output:, exit_status:)
  update!(output: output, exit_status: exit_status, finished_at: Time.current)
  job_definition.memory_expectancy.calculate!
end

#finish_by_signal(output:, term_signal:) ⇒ Object



44
45
46
47
# File 'app/models/kuroko2/execution.rb', line 44

def finish_by_signal(output:, term_signal:)
  update!(output: output, term_signal: term_signal, finished_at: Time.current)
  job_definition.memory_expectancy.calculate!
end

#success?Boolean

Returns:

  • (Boolean)


27
28
29
# File 'app/models/kuroko2/execution.rb', line 27

def success?
  exit_status == 0
end