Class: Ductwork::Advancement
- Inherits:
-
Record
- Object
- Record
- Ductwork::Advancement
- Defined in:
- lib/ductwork/models/advancement.rb
Constant Summary collapse
- CRASH_ERROR_KLASSES =
%w[Ductwork::ProcessCrash Ductwork::ThreadCrash].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 |
# File 'lib/ductwork/models/advancement.rb', line 16 def process_crashed! Ductwork::Record.transaction do rows_updated = self.class .where(id: id, completed_at: nil) .update_all( completed_at: Time.current, error_klass: "Ductwork::ProcessCrash", error_message: "Reaped from orphaned process" ) return if rows_updated.zero? transition.branch.release! end end |
#thread_crashed!(expected_token) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/ductwork/models/advancement.rb', line 32 def thread_crashed!(expected_token) Ductwork::Record.transaction do rows_updated = self.class .where(id: id, completed_at: nil) .update_all( completed_at: Time.current, error_klass: "Ductwork::ThreadCrash", error_message: "Advancement abandoned from a thread crash" ) return if rows_updated.zero? transition.branch.release!(expected_token) end end |