Class: Extface::Job

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/extface/job.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

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



11
12
13
14
15
# File 'app/models/extface/job.rb', line 11

def complete!
  self.completed_at = Time.now
  save!
  notify("Job #{self.id} completed!")
end

#completed? ⇒ Boolean

Returns:

  • (Boolean)


17
18
19
# File 'app/models/extface/job.rb', line 17

def completed?
  !!completed_at
end

#connected! ⇒ Object



21
22
23
24
25
26
27
# File 'app/models/extface/job.rb', line 21

def connected!
  unless connected?
    self.connected_at = Time.now
    save! unless Rails.env.test?
    notify("Job #{self.id} device connected!")
  end
end

#connected? ⇒ Boolean

Returns:

  • (Boolean)


29
30
31
# File 'app/models/extface/job.rb', line 29

def connected?
  !!connected_at?
end

#failed!(message) ⇒ Object



33
34
35
36
37
38
39
# File 'app/models/extface/job.rb', line 33

def failed!(message)
  self.error = message
  self.failed_at = Time.now
  save!
  notify(message)
  notify("Job #{self.id} failed!")
end

#failed? ⇒ Boolean

Returns:

  • (Boolean)


41
42
43
# File 'app/models/extface/job.rb', line 41

def failed?
  !!failed_at
end

#notify(message) ⇒ Object



45
46
47
48
49
# File 'app/models/extface/job.rb', line 45

def notify(message)
  Extface.redis_block do |r|
    r.publish(self.id, message)
  end
end

#rpush(buffer) ⇒ Object



51
52
53
54
55
# File 'app/models/extface/job.rb', line 51

def rpush(buffer)
  Extface.redis_block do |r|
    r.rpush self.id, buffer
  end
end