Class: Ductwork::Advancement
- Inherits:
-
Record
- Object
- Record
- Ductwork::Advancement
- Defined in:
- lib/ductwork/models/advancement.rb
Constant Summary collapse
- CRASH_ERROR_KLASSES =
[Ductwork::ProcessCrash.name, Ductwork::ThreadCrash.name].freeze
Instance Method Summary collapse
Instance Method Details
#crash? ⇒ Boolean
12 13 14 |
# File 'lib/ductwork/models/advancement.rb', line 12 def crash? CRASH_ERROR_KLASSES.include?(error_klass) end |
#process_crashed! ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/ductwork/models/advancement.rb', line 16 def process_crashed! completed_at = updated_at = Time.current Ductwork::Record.transaction do rows_updated = self.class .where(id: id, completed_at: nil) .update_all( completed_at: completed_at, updated_at: updated_at, error_klass: Ductwork::ProcessCrash.name, error_message: "Reaped from orphaned process" ) return if rows_updated.zero? transition.branch.release! end end |
#thread_crashed!(expected_token) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/ductwork/models/advancement.rb', line 35 def thread_crashed!(expected_token) completed_at = updated_at = Time.current Ductwork::Record.transaction do rows_updated = self.class .where(id: id, completed_at: nil) .update_all( completed_at: completed_at, updated_at: updated_at, error_klass: Ductwork::ThreadCrash.name, error_message: "Advancement abandoned from a thread crash" ) return if rows_updated.zero? transition.branch.release!(expected_token) end end |