Class: Extface::Job
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Extface::Job
- Defined in:
- app/models/extface/job.rb
Instance Attribute Summary collapse
-
#thread ⇒ Object
Returns the value of attribute thread.
Instance Method Summary collapse
- #complete! ⇒ Object
- #completed? ⇒ Boolean
- #connected! ⇒ Object
- #connected? ⇒ Boolean
- #failed!(message) ⇒ Object
- #failed? ⇒ Boolean
- #notify(message) ⇒ Object
- #rpush(buffer) ⇒ Object
- #runtime(description = nil) ⇒ Object
Instance Attribute Details
#thread ⇒ Object
Returns the value of attribute thread.
3 4 5 |
# File 'app/models/extface/job.rb', line 3 def thread @thread end |
Instance Method Details
#complete! ⇒ Object
31 32 33 34 35 |
# File 'app/models/extface/job.rb', line 31 def complete! self.completed_at = Time.now save! notify("Job #{self.id} completed!") end |
#completed? ⇒ Boolean
37 38 39 |
# File 'app/models/extface/job.rb', line 37 def completed? !!completed_at end |
#connected! ⇒ Object
41 42 43 44 45 46 47 |
# File 'app/models/extface/job.rb', line 41 def connected! unless connected? self.connected_at = Time.now save! unless Rails.env.test? notify("Job #{self.id} device connected!") end end |
#connected? ⇒ Boolean
49 50 51 |
# File 'app/models/extface/job.rb', line 49 def connected? !!connected_at? end |
#failed!(message) ⇒ Object
53 54 55 56 57 58 59 |
# File 'app/models/extface/job.rb', line 53 def failed!() self.error = self.failed_at = Time.now save! notify() notify("Job #{self.id} failed!") end |
#failed? ⇒ Boolean
61 62 63 |
# File 'app/models/extface/job.rb', line 61 def failed? !!failed_at end |
#notify(message) ⇒ Object
65 66 67 68 69 |
# File 'app/models/extface/job.rb', line 65 def notify() Extface.redis_block do |r| r.publish(self.id, ) end end |
#rpush(buffer) ⇒ Object
71 72 73 74 75 |
# File 'app/models/extface/job.rb', line 71 def rpush(buffer) Extface.redis_block do |r| r.rpush self.id, buffer end end |
#runtime(description = nil) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'app/models/extface/job.rb', line 11 def runtime(description = nil) update!(description: description, started_at: Time.now) begin raise 'No device assigned' unless device.present? raise 'No driver configured' unless device.driver.present? if device.driver.set_job(self) yield device.driver complete! else raise device.driver.errors..join(', ') end rescue => e STDERR.puts e. e.backtrace.each do |line| p line end failed! e. end end |