Class: Kuroko2::Execution
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- Kuroko2::Execution
- Includes:
- TableNameCustomizable
- Defined in:
- app/models/kuroko2/execution.rb
Constant Summary collapse
- DEFAULT_QUEUE =
'@default'
Class Method Summary collapse
Instance Method Summary collapse
- #completed? ⇒ Boolean
- #finish(output:, exit_status:) ⇒ Object
- #finish_by_signal(output:, term_signal:) ⇒ Object
- #success? ⇒ Boolean
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
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
27 28 29 |
# File 'app/models/kuroko2/execution.rb', line 27 def success? exit_status == 0 end |